我在jquery点击事件中遇到问题。
我的网页涉及通过javascript创建一个按钮并为按钮分配一个类(称之为A)。现在我想检测该按钮的点击,我已经为它编写了以下代码:
$(".A").click( function () { // do something });
令我惊讶的是,这个点击事件永远不会被调用。
但是当我在网页上静态制作按钮时(在设计时),相同的代码可以正常工作。
如果动态创建按钮,是否有不同的方法将按钮单击与jquery绑定?
答案 0 :(得分:3)
您需要使用$.live
$(".A").live('click', function () {
// do something
});
答案 1 :(得分:0)
查看live()
jquery方法,自动将事件连接到新元素。或者,在创建新按钮时,附加新的单击事件。
var newbutton = $('<input type="button" value="click me"/>');
somediv.append(newbutton);
newbutton.click(yourhandler);
答案 2 :(得分:0)
在按钮存在之前,您的事件处理程序会在页面加载时触发。
在创建按钮后重置事件处理程序,或使用.live
进行后期绑定:
$(".A").live('click', function () {
// do something
});
现在处理程序将适用于将来创建的.A
。
答案 3 :(得分:-1)
你必须使用jquery的live-function!与点击功能不同,它会监视dom操作。你可以想象它比.click()稍慢。
$('.clickme').live('click', function() {
// Live handler called.
});
菲利克斯