2

だから私はjavascript/jqueryにかなり慣れていないので、助けが必要です。これが問題です。ボタンがjqueryアニメーションをトリガーしてログインフォームを表示するページがあります(その場所にあった以前のhtmlを置き換えるだけです)ログインフォームで、ログインフォームを非表示にするボタンを動的に作成し、元の html を表示します。しかし、そのボタンを .click メソッドで呼び出すことはできず、OnClick 属性でさえ機能しません! 何かアドバイス?

$(document).ready(function() {
$("#login_button").click(function() {
$("#menu").animate({height: "toggle"}, 500, function() {
$("#menu").empty();
$("#menu").append('<button id="back_button"></button>');
$("#menu").animate({height: "toggle"}, {duration: 500, queue: false});
});
});
});

そして、「back_button」クリックをリッスンするコード:

$(document).ready(function() {
$("#back_button").click(function() {
$("#menu").animate({height: "toggle"}, 500, function() {
$("#menu").append(//Regular HTML);
$("#menu").animate({height: "toggle"}, {duration: 500, queue: false});
});
});
});

別の JavaScript で生成された要素で JavaScript を実行できませんか? どんな考えでも素晴らしいでしょう!前もって感謝します!

4

4 に答える 4

11

背中のボタンのコードを次のように変更します。

$("#back_button").click(function() {

$(document).on('click', "#back_button", function() {

.on()要素を動的に作成する場合、jQuery の関数を使用する必要があります。

イベント ハンドラーは、現在選択されている要素にのみバインドされます。これらは、コードが .on() を呼び出す時点でページに存在している必要があります。要素が存在し、選択できることを確認するには、ページの HTML マークアップにある要素のドキュメント対応ハンドラー内でイベント バインディングを実行します。新しい HTML がページに挿入されている場合は、要素を選択し、新しい HTML がページに配置された後にイベント ハンドラーを添付します。

于 2013-05-10T20:54:59.913 に答える
0

読み込み時にクリック ハンドラーを追加しようとしましたが、<button>まだ作成されていません。ボタンの作成後に、ボタンを作成するのと同じコードにクリック関数を追加します。

于 2013-05-10T20:54:47.507 に答える