1

jquery UIソート可能を使用していますが、ユーザーがタブをクリックしたときに外部ファイルから要素のリストをロードすることにより、ソート可能リストにデータを入力しています。リストアイテムをロードするときに、それぞれにチェックボックスを追加します。チェックボックスは表示されていますが、クリックしてもアラートはトリガーされません。ただし、li要素の外側に配置されたチェックボックスは正常に機能します。これにより、neddsが解決したjquerysortableとのある種の非互換性があると私は信じています。

Javascript:

window.onload = function () {

    $('input:checkbox').change(function () { // detects when user clicks on a checkbox
        alert("You click a checkbox");
    });

    var a = document.getElementById("fvsortid"); // loads slides when user clicks tab

    a.onclick = function () {
        $("#sortable").load("file.xml");
        $("#sortable").load("file.xml", function () {
            $('<input type="checkbox"/>').prependTo('#sortable li');
        });
    };
};
4

2 に答える 2

2

イベントを委任してみる

$('#sortable').on('change' , 'input:checkbox' ,function() { 
          alert("You click a checkbox");
 });

イベント ハンドラーが関連付けられたときに要素が DOM に存在しなかったため、イベントが発生していないようです。問題が発生した場合は、イベントを静的な親に委任します。

于 2012-10-16T00:54:51.117 に答える
0

チェックボックスがレンダリングされた後、.on() 関数を使用して、イベント ハンドラーをチェックボックスにポイントする必要があります。

例として、

$('input').on("click", function(event){
alert($(this).text());
});

この件に関する読み物は次のとおりです。http://api.jquery.com/on/

于 2012-10-16T00:57:19.917 に答える