复选框事件不是从可排序的li元素触发的?

时间:2012-10-16 00:51:30

标签: jquery checkbox click jquery-ui-sortable

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

使用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');
        });
    };
};

2 个答案:

答案 0 :(得分:2)

尝试委派活动

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

事件似乎没有触发,因为当事件处理程序与它相关联时,DOM中不存在该元素。将事件委派给静态父项应该是您的问题..

答案 1 :(得分:0)

您需要使用.on()函数将事件处理程序指向呈现后的复选框。

举个例子,

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

以下是关于这个主题的一些阅读:http://api.jquery.com/on/