0

次のように、ドロップダウンの選択に基づいて 1 つのドロップダウンを作成するために、jQuery を使用しようとしています。

落ちる

これは最初の行では問題なく機能しますが、WordPress の Gravity Forms プラグインを使用して後続の行を追加できるようにしています。私の jQuery スクリプトは、ページが読み込まれた後に追加されたドロップダウンによって完全に無視されるようです。

メソッドの使用方法は次のとおりです。

$('#form-register .gfield_list tr td:first select').on('change', function() {
    var fieldBrand = $(this).parent().next().find('select');
    alert('1');

「1」は最初の行の選択フィールドでのみ警告され、他には警告されません。

ここで Web ページ (完全な jQuery スクリプトを含む) を見ることができます: - http://www.mattpealing-server.co.uk/~devappli/register/

誰かが私が間違っていることを見ることができますか? Firefox のエラー コンソールにエラーが表示されません。

また、+/- アイコンに適用したツールチップにも同じ問題があります。これらはそれほど重要ではありませんが、問題の原因は同じだと思います。

4

3 に答える 3

6

onイベント委任が使用されている場合にのみ、将来の要素に影響します。ドキュメントの委任セクションを読む必要があります。#form-registerこのようなものは、ajax を介してロードされないと仮定して機能します。

$('#form-register').on('change', '.gfield_list tr td:first select', function() {
于 2013-08-28T15:31:24.137 に答える
2

これは、委任されたイベントを使用する方法ではありません。将来の要素のセレクターを提供する必要があります。

#form-registerバインド時に存在すると仮定して、これを試してください

$('#form-register').on('change', '.gfield_list tr td:first select', function() { 
... 
})

#form-registerバインド時に存在する任意のコンテナーに置き換えることができるため、階層内で使用可能な最も近いものを選択するようにしてください。

于 2013-08-28T15:30:57.710 に答える
0

ありがとう。

私は最終的にそれを修正しました: $(document).on('change','#form-register .gfield_list tr td:first-child select', function() {

于 2013-08-29T14:42:42.747 に答える