0

私は 2 つの異なるプロジェクトでこの問題を抱えていましたが、最終的にこの最新のプロジェクトで何があったのかを理解しました。どちらの場合も、SQL から動的テキストと動的に値が設定されたボタンを取り込んでおり (一方のプロジェクトでは Python MVC を介して、もう一方のプロジェクトでは PHP を介して)、テキストの一部を非表示にする onclick 関数をボタンに設定しています。 .

2回目に試したときにうまくいくという問題は、まったく問題ありません。この 2 番目のプロジェクトでは、最終的にいくつかのアラートを適切な場所に配置し、最初のクリックで CSS の可視性/表示属性に値がないことに気付きました (未定義ではありません。 . この問題が私の答えかもしれないと思いますが、.live() が jQuery で減価償却されているため、.on() をどうすればよいか正確にはわかりません - ロードを探しているイベントですか、それとも他に何かありますか?私は使用する必要がありますか?

どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

1

委任を使用する必要があります。

$( document ).on( 'click', '[selector for dynamic elements]', function () {
    // Do stuff here
} );

このようにして、ハンドラーはページに常に存在する要素にバインドされ、selectorパラメーターを使用して、操作する動的要素を指定できます。

アップデート

thing1以下のコメントのコードサンプルを考えると、が静的で動的であると仮定するthing2と、次のようになります。

$( '#thing1' ).on( 'click', '#thing2', function () {
    // Do stuff here (your foo() function code)
} );

または、名前付き関数も参照できます。

$( '#thing1' ).on( 'click', '#thing2', foo /* name of function to assign to event */ );
于 2013-01-08T18:52:27.623 に答える