JQUERY的事件委派问题
Event delegation issue with JQUERY
我是Jquery的新手,我正在努力了解事件委派是如何工作的。我正在尝试这个:
$("#32298").on( 'click',function() { // event delegation
alert("df");
var imgs = document.getElementById("32298")[0].src;
alert(imgs);
});
当我点击这个Id的图像时,我会收到第一个警报,但第二个警报不起作用。
我在这里做错了什么?非常感谢。
如果要执行事件委派,那么事件处理程序函数的第二个参数需要是一个选择器,以匹配与要单击的元素匹配的元素。
$(document.body).on('click', "#32290", function(event) {
代码的问题与事件委派无关。getElementById
返回单个元素(id在文档中必须是唯一的),而不是HTML集合。(与使用复数元素的getElementsByTagName
和getElementsByClassName
相比。)它不会具有0
属性。
var imgs = document.getElementById("32298").src;
由于您使用的是jQuery,您可以简单地使用$(this)
构造函数,而不是document.getElementById()
:
$("#32298").on( 'click',function() {
alert("df");
var imgs = $(this).attr('src');
alert(imgs);
});
顺便说一句,这不是事件委派,它只是一个绑定到元素的事件。
如果必须使用vanillaJS来获取src
属性,则不需要向getElementById()
的返回值传递索引,因为此函数返回的是DOMObject,而不是数组。更新如下:
$("#32298").on( 'click',function() {
alert("df");
var imgs = document.getElementById("32298").src;
alert(imgs);
});
同样值得注意的是,ID应该是唯一的,因此#32298
应该引用DOM中的单个元素。我不知道这是否是拼写错误,但似乎有多个元素具有相同的ID(因为您使用了变量名imgs
,即复数)。
你可以试试这个
$("#32298").click( function() {
alert("df");
var imgs = $(this).attr('src');
alert(imgs);
});
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何消除代码中的未定义和其他问题
- JQUERY的事件委派问题
- Jquery 事件委派问题
- 事件委派问题
- jQuery load()/事件委派问题
- <李>ajax[事件委派问题]后点击功能不起作用