Heim > Backend-Entwicklung > PHP-Tutorial > 关于jquery的问题,按钮点击事件

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

WBOY
Freigeben: 2016-06-23 13:42:09
Original
841 Leute haben es durchsucht

有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);			}		});	});
Nach dem Login kopieren

B页面
$data=array(	'html'=>$html,	'script'=>$script);echo json_encode($data);
Nach dem Login kopieren

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,谢谢,好多问题都是你回答解决的。
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage