1

我有一个带有图像的网格,每个图像都有一个复选框来选择它(用于删除)。网格是可排序的。

仅当图像未拖放/删除时(仅通过简单的单击),我才想选中/取消选中该复选框。

我做了以下几行

$('#images li').click(function() {
    if ($(this).children('input').is(':checked'))
    {
         $(this).children('input').attr('checked', false);
    }
    else
    {
         $(this).children('input').attr('checked', true);
    }
});

$('#image li').bind('drag',function() {
    $(this).children('input').attr('checked', false);
});

$('#image li').bind('drop',function() {
    $(this).children('input').attr('checked', false);
});

然而,“drop”语句看起来不起作用。如何以正确的方式做到这一点?

4

2 回答 2

0

在此示例中,drop事件不是您认为的那样。这是在被放置的对象上触发的事件,而不是在放置的对象上触发的事件。您正在寻找活动。 dragend

http://help.dottoro.com/ljsluknm.php

于 2012-11-12T14:16:42.653 回答
0

我有解决办法!我已将“click()”更改为“live()”,因为它可以正常工作。正确的代码:

$('#images li').on('click', function() {
    if ($(this).children('input').is(':checked'))
    {
         $(this).children('input').attr('checked', false);
    }
    else
    {
         $(this).children('input').attr('checked', true);
    }
});

$('#image li').bind('drag',function() {
    $(this).children('input').attr('checked', false);
});

$('#image li').bind('drop',function() {
    $(this).children('input').attr('checked', false);
});
于 2012-11-12T16:05:03.900 回答