2012-01-03 39 views

回答

4

即使您将“onclick”添加到按钮,它不会被浏览器解析和处理,也不会创建事件处理程序。

你最好的选择是创建一个事件处理出来的按钮本身的,去掉“的onclick”行了,这在文件中准备块:

$("#d1").on('click', 'input:button', function() { 
    alert($("#dataSources").val()); 
}); 

这将作为事件处理程序附有自己#d1,并将事件本身委托给点击的按钮。如果您创建或销毁按钮,这不会影响处理程序。

+0

我如何在jQuery的1.3.2版本中实现这一点。我们的开发版本只有1.3.2 – Saravanan 2012-01-03 07:02:49

+0

通过升级到jQuery 1.7.1 ASAP !!。 jquery 1.4.2引入了$ .delegate,相当于$ .on,解决了很多bug,并且比1.3.2快得多。 jquery 1.6.2也很稳定,我用它来制作。 (我仍然必须验证1.7的生产,并且由于某些原因,我喜欢x.x.2版本...... X'D)。但是,如果你真的不能升级,$ .live是不错的选择,或者你可以使用$ .bind,将“event”传递给回调函数,然后在'if(event.target =='buttonId '){...'块。 – roselan 2012-01-03 07:15:16

+0

检查[这小提琴](http://jsfiddle.net/YNM68/10/)为1.3.2 – roselan 2012-01-03 07:26:55

0

而是定义append方法内点击事件,你可以内document.ready使用on方法绑定事件假设你正在使用jQuery 1.7.1中的jsfiddle链接提供。

E.g:

$("#deleteDataSource").on("click", function(){ 
    //do your work here 
}); 

注:我觉得你应该跟你的问题发表您的代码。

+0

由于DOM准备就绪时我没有deleteDataSource,因此我无法使用此代码。 – Saravanan 2012-01-03 06:35:08

+0

同意,@ roselan的回答是正确的。 – 2012-01-03 06:37:35

相关问题