[英]Javascript event listener fails because “undefined” is not a function
我一直在用这个工作几个小时,这让我很生气。 我有一个模态窗口,点击一个链接弹出。 它有一个CSS转换,因此它会淡入。我需要在转换完成时进行回调。 所以我挖出了这个事件监听器:
$('#tagBox').addEventListener(
'webkitTransitionEnd',
function(event) {
alert( "Finished transition!" ); },
false );
我在Safari中,但该代码返回此错误:
TypeError: 'undefined' is not a function (evaluating '$('#tagBox').addEventListener( 'webkitTransitionEnd', function(){ alert( "Finished transition!" ) }, false )')
我的语法是否正确? 我可以做alert($('#tagBox'))
并返回[object]所以它找到了模态元素。 为什么说undefined不是函数?
谢谢。
$('#tagBox')返回一个jQuery元素,该元素没有addEventListener方法,这是一种本机方法。 您需要通过执行以下操作来调用addEventListener之前获取原始DOM:
$('#tagBox')[0].addEventListener(// your code
应该是:
$('#tagBox').bind('webkitTransitionEnd', function() {
//....
});
如果你想只开一次,你可以使用.one :
$('#tagBox').one('webkitTransitionEnd', function() {
//....
});
你错过了事件参数吗?
box.addEventListener(
'webkitTransitionEnd',
function( event ) {
alert( "Finished transition!" );
}, false );
如果您使用的是最新版本的jquery 1.7+,那么您实际上正在寻找“on” http://api.jquery.com/on/ ,它将允许您将事件添加到其中。
$('#tagBox').on('webkitTransitionEnd', function(event) { alert('whatever'); });
结合jQuery off :
$('#tagBox').on('webkitTransitionEnd', function(event) {
$('#tagBox').off('webkitTransitionEnd');
alert('whatever');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.