&安培;&安培;在下降事件中

时间:2012-10-28 19:08:49

标签: jquery jquery-ui draggable droppable logical-operators

我只是在所有drop被删除的情况下尝试触发draggables事件。

drop: function(event,ui){
            var dropd = "#"+ui.draggable.attr("id");
            if("#a_dra" && "#b_dra" && "#c_dra" && "#d_dra" == dropd){
                $("#whistle").get(0).play();
                dfd.resolve();
            };  
        },

有了这个code,就会出现问题。当每个div被删除并正确触发时,它都有效。 除了,当我只删除#a_dra#d_dra时,它也会触发,这是不可取的,因为我需要随机。

我在那里缺少什么?

提前致谢! :)

1 个答案:

答案 0 :(得分:4)

if("#a_dra" && "#b_dra" && "#c_dra" && "#d_dra" == dropd){

上述行实际上意味着

if(("#a_dra" == true) && ("#b_dra" == true) && ("#c_dra" == true) && ("#d_dra" == dropd)) {

您无法将比较简化为多个值。

您可以保留每个被删除的可拖动状态,这样您就可以检查是否所有这些都已被删除,以便您可以解决延迟:

var dropped = {}

....

drop: function(event,ui){
    var dropd = "#"+ui.draggable.attr("id");
    dropped[dropd] = true;
    if(dropped["#a_dra"] && dropped["#b_dra"] && dropped["#c_dra"] && dropped["#d_dra"]){
        $("#whistle").get(0).play();
        dfd.resolve();
    };  
},