jquery の問題に関しては、ボタン クリック イベント
には 2 つのページ A と B があります
ページ A には複数の「変更」ボタンがあり、各ボタンには style class="editbtn" があり、ajax をクリックしてページ B に移動します。次のとおりです。コード
$(".editbtn").click(function(){<br /> var url="b.php";<br /> var params = $('form').serialize();<br /> $.ajax({<br /> url: url,<br /> type: 'post',<br /> dataType:'json',<br /> data: params,<br /> success: function (data){<br /> $("#div1").html(data.html);<br /> $("#div2").html(data.script);<br /> }<br /> });<br /> });
ログイン後にコピー
B ページ
$data=array(<br /> 'html'=>$html,<br /> 'script'=>$script<br />);<br />echo json_encode($data);
ログイン後にコピー
B ページも、class="editbtn" を含む N 個の「変更」ボタンを返します。これらの返されたボタンをクリックすると、$(" .editbtn) を完了できません。 ").クリック、理由は何ですか?
ページ B に 'script'=>$script があるのは、$(".editbtn").click イベントが完了できないためです。ページ B に上記の jquery を追加して $("#div2) にしました。 ").html とすると、このように実行できますが、効率が悪い気がします。何度もクリックすると、同じコードが何度も繰り返されるようです。これで良いと思いますか?それは悪いことではないでしょうか?
------ソリューションのアイデア----------------------Put $(".editbtn") .click(function(){
を $(document).on('click', ".editbtn", function(){
--- -- に変更するだけです。 -解決策----------------------バインディングイベントが
$('.clickme').live ('click' に変更されました) , function() {
alert("ライブハンドラーが呼び出されました。");
});
live: この要素が後で追加されたものであっても、一致するすべての要素にイベント ハンドラー関数をアタッチします。