欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-06-13 17:48:54
...
有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,谢谢,好多问题都是你回答解决的。