我想附加一个事件到动态创建的元素类。我使用live函数,但它没有被触发。所以检查
live function reference,有我红色下面注释
As of jQuery 1.7,the .live() method is deprecated. Use .on() to
attach event handlers. Users of older versions of jQuery should use
.delegate() in preference to .live().
所以决定使用on函数,但它仍然不工作。文本字段已经附加了jquery ui datpicker.On另一个元素选择我禁用该字段。
jQuery("#from").attr('disabled','disabled') .removeClass('date_picker_bg') .removeClass('hasDatepicker') .addClass('date_picker_disabled');
后禁用如果我点击我想显示警报或tooltip.so我试过这个,但不工作
jQuery(".date_picker_disabled").on("click",function(event){ alert('hi'); });
可能是什么问题
我使用jquery 1.7.1(jquery-1.7.1.min.js)
解决方法
问题是jQuery(“。date_picker_disabled”)找到具有该类的元素并绑定到它们。如果元素在进行绑定时没有类,则不会处理事件。
on函数允许你通过在事件“冒泡到”父元素时处理它们在另一个元素上。在这种情况下,我们可以说身体元素 – 可能有一个更具体的共同父亲你可以选择。
jQuery(document.body).on('click','.date_picker_disabled',function(event) { alert('hi'); });
事件处理程序现在绑定到document.body元素。对身体中任何位置发生的所有点击进行测试,看看它们是否来自与选择器匹配的元素。如果是这样,处理程序被触发。
这在on
功能的文档中进行了说明。它是与以前版本的jQuery的现场和委托功能相同的行为。
再次查看您的代码后,您已在输入元素上设置了disabled =“disabled”。点击事件不会触发禁用的元素。