首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >& in drop事件

& in drop事件
EN

Stack Overflow用户
提问于 2012-10-28 19:08:49
回答 1查看 59关注 0票数 0

只有在删除所有drop的条件下,我才试图触发一个draggables事件。

代码语言:javascript
复制
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时,它也会触发,这是不可取的,因为我需要它是随机的。

我在里面少了什么?

谢谢!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-28 19:10:36

代码语言:javascript
复制
if("#a_dra" && "#b_dra" && "#c_dra" && "#d_dra" == dropd){

以上这一行实际上意味着

代码语言:javascript
复制
if(("#a_dra" == true) && ("#b_dra" == true) && ("#c_dra" == true) && ("#d_dra" == dropd)) {

你不能把它和这样的多个值进行比较。

您可以为被拖放的每个可拖式保留状态,因此您可以检查是否所有这些状态都已被删除,以便解决延迟问题:

代码语言:javascript
复制
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();
    };  
},
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13112068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档