是否可以检查jQuery对象是否支持触发特定事件的事件处理程序?我有一个带有DOM元素的函数,我想使用以下内容来监听“load”以淡入元素:
element.css({ opacity: 0.0 });
element.bind('load', function() { $(this).animate({ opacity: 1.0 }); });
不幸的是,如果传入的元素不是图像(因为它总是透明的),这会失败。谢谢!
答案 0 :(得分:1)
jQuery可以将'load'
事件绑定到任何 DOM元素(<==
这永远不会失败)。但是,该事件不在任何DOM元素上触发(它在window
,document
,脚本,样式表,图像,iframe等处触发。
如果'load'
事件未在给定元素(例如,DIV)上触发,那么将负载处理程序绑定到该元素就没有意义。
答案 1 :(得分:0)
由于我的评论似乎是一条可接受的路线,所以这里有一个更完整的答案:
因为看起来你的函数只有在传递的元素是图像时才能工作,所以只需测试传入的元素是否是图像:
function conditional(element) {
if(element.tagName == "IMG") {
element.css({ opacity: 0.0 }).bind('load', function() { $(this).animate({opacity: 1.0 }); });
}
}