如何解决jQuery测试DOM元素是否支持“加载”事件
| 是否可以检查jQuery对象是否支持触发特定事件的事件处理程序?我有一个使用DOM元素的函数,我想使用以下命令监听\“ load \”淡入元素:element.css({ opacity: 0.0 });
element.bind(\'load\',function() { $(this).animate({ opacity: 1.0 }); });
不幸的是,如果传入的元素不是图像,则此操作将失败(因为它将始终是透明的)。谢谢!
解决方法
jQuery可以将
\'load\'
事件绑定到任何DOM元素(<==
永远不会失败)。但是,该事件不会在任何DOM元素上触发(它在window
,document
,脚本,样式表,图像,iframe等处触发)。
如果“ 1”事件没有在给定元素(例如DIV)上触发,则将负载处理程序绑定到该元素没有任何意义。
, 由于我的评论似乎是可以接受的路线,因此这里的答案较为完整:
由于似乎您的函数仅在传递的元素是图像时才起作用,因此只需测试一下,以了解传入的元素是否为图像:
function conditional(element) {
if(element.tagName == \"IMG\") {
element.css({ opacity: 0.0 }).bind(\'load\',function() { $(this).animate({opacity: 1.0 }); });
}
}
http://jsfiddle.net/cHsMx/2/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。