1

我正在使用可排序的 jquery UI,但是当用户单击选项卡时,我通过从外部文件加载元素列表来填充可排序列表。加载列表项后,我为每个项添加一个复选框。复选框已显示,但单击它不会触发警报。但是,放置在li元素外部的复选框可以正常工作 - 这让我相信 nedds 解决了与 jquery sortable 存在某种不兼容性:

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 回答