1

テーブルの行追加ボタンをクリックしているときに動的行を追加する機能があります。私の問題は、新しい行の選択リストを変更しているときにメッセージを警告する必要があることですが、Jquery ライブ クリックを使用すると機能しません。ただし、Jquery bind click の使用中に動的に追加されない他のすべての選択ボックスで機能します。これを解決するために誰か助けてもらえますか?

私のプロジェクトでは、HTML コントロールの書式設定に Jqtransform を使用しています。

私がこれまでやってきたことは、

    $('div.jqTransformSelectWrapper ul li a').live('click',function() {
        alert('message');}
    });
4

2 に答える 2

5

次のようにして、選択リストの変更イベントをトリガーして Jqtransform.js ファイルを変更することで、これを解決しました。実際には Jqtransform.js に関するバグです

私のこの投稿にたどり着いた場合は、おそらく jqtransform が何であるかを知っており、おそらくドロップダウンリストの変更イベントに苦労しているでしょう。

機能しない理由は、jqtransform が順序付けられていないリストを使用してドロップダウンリストを作成し、ドロップダウンリストを非表示にするためです。

修正は実際には非常に簡単です。

jquery.jqtransform.js ファイルを開き、次の行を見つけます。

/* Fire the onchange event */
if ($select[0].selectedIndex != $(this).attr('index') && $select[0].onchange) {
     $select[0].selectedIndex = $(this).attr('index');
     $select[0].onchange();
}

その行の下に次を追加するだけです。

/* Fire the change event */
if ($select[0].selectedIndex != $(this).attr('index')) {
     $select[0].selectedIndex = $(this).attr('index');
     $($select[0]).trigger('change');
}
于 2011-09-22T07:05:50.513 に答える
0

delegate()代わりにjQueryを使用してください。live多くの理由でより優れています。デバッグconsole.log()の代わりにも使ってください!alert()

$('div.jqTransformSelectWrapper ul li').delegate('a', 'click',function() {
        console.log('message');}
    });
于 2011-09-22T05:49:07.850 に答える