ホームページ  >  記事  >  バックエンド開発  >  jqueryの問題、ボタンクリックイベントについて

jqueryの問題、ボタンクリックイベントについて

WBOY
WBOYオリジナル
2016-06-23 13:42:09798ブラウズ

2 つのページ A と B があります
ページ A には複数の「編集」ボタンがあり、各ボタンには style 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);			}		});	});

Page B
$data=array(	'html'=>$html,	'script'=>$script);echo json_encode($data);

Page B class="editbtn" を含む N 個の「編集」ボタンも返されます。これらの返されたボタンをクリックしても $(".editbtn").click を完了できません。その理由は何ですか?
ページ B に 'script'=>$script があるのは、$(".editbtn").click イベントを完了できないためです。上記の jquery をページ B に追加し、$(" #div2" に移動しました)。 ).htmlなので実行はできるのですが、何度もクリックすると同じコードが何度も繰り返されてしまうような気がしますが、これで良いでしょうか?それは悪いことではないでしょうか?


ディスカッションに返信 (解決策)

$(".editbtn").click(function(){
を $(document).on('click', ".editbtn", function() に変更します{
以上です

$(".editbtn").click(function(){
を $(document).on('click', ".editbtn", function(){
以上です


答えてくれてありがとう
以前は $(document).ready の中に入れていました。あなたが言ったことによると、それが内側にあるか外側にあるかは関係ありません。
TypeError: $(...).on はそうではありません。関数

バインディング イベントは
$('.clickme').live('click', function() {
alert("ライブ ハンドラーが呼び出されます。");
}); に変更されます。要素へのイベント ハンドラーの付加は、要素が後で追加された場合でも有効です

$(".editbtn").click(function(){

を $(document).on('click', ".editbtn ", function(){
以上です

jquery のバージョンを変更しても問題ありません。以前使用していた jquery-1.6.2.min は jquery-1.8.3.min に変更されました。ありがとうございます。多くの質問があります。回答解決しました
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php-isset次の記事:php-isset