您好,欢迎访问一九零五行业门户网

关于jquery的问题,按钮点击事件

有a、b两个页面
a页面有多个“修改”按钮,每个按钮有样式class=editbtn,点击ajax到b页面,如下代码
$(.editbtn).click(function(){ var url=b.php; var params = $('form').serialize(); $.ajax({ url: url, type: 'post', datatype:'json', data: params, success: function (data){ $(#div1).html(data.html); $(#div2).html(data.script); } }); });
b页面
$data=array( 'html'=>$html, 'script'=>$script);echo json_encode($data);
b页面也会返回n条包含class=editbtn的“修改”按钮,返回的这些按钮点击就无法完成$(.editbtn).click了,请问是什么原因呢?
之所以b页面有'script'=>$script,就是因为无法完成$(.editbtn).click事件,我又在b页面加了上面那段jquery,把它又弄到$(#div2).html,这样就可以运行,但是这样我感觉效率不好,好像如果点击了很多次就重复了很多次相同的代码,大神们觉得这样好吗?应该不好吧?
回复讨论(解决方案) 把 $(.editbtn).click(function(){
改为 $(document).on('click', .editbtn, function(){
就可以了
把 $(.editbtn).click(function(){
改为 $(document).on('click', .editbtn, function(){
就可以了
谢谢解答哈。
我之前是放在$(document).ready里面的,按照你说的我不管是放在这个内还是外提示:
typeerror: $(...).on is not a function 绑定事件改成
$('.clickme').live('click', function() {
  alert(live handler called.); 
});
live:给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效
把 $(.editbtn).click(function(){
改为 $(document).on('click', .editbtn, function(){
就可以了
换了jquery版本可以了,之前用的jquery-1.6.2.min,改为jquery-1.8.3.min,谢谢,好多问题都是你回答解决的。
其它类似信息

推荐信息