2010-10-13 29 views
1

我有2个可排序的连接列表与图片:相册和收藏夹。
当我从相册 - >收藏夹拖动和项目时,我想检查它是否已经在收藏列表中。
jQuery的UI问题发送字符串从ui.item对象中提取

  • 如果是,不接受它(也许禁用排序还是什么?)
  • 如果不是,克隆项背到相册中的原始索引(连接排序列表仅做移动项目,所以这种模仿抄袭)
  • 我有检查,如果照片是在收藏夹列表的功能:

    function isInFavorites(url) { 
        return $(".favorites li img[src*='" + url + "']").length > 0; 
    } 
    

    此函数类似于预期...
    然而,当我提取SCR ATTR与ui.item和把这个参数传递给这个函数I a总是得到一个真正的布尔值?

    var itemSrc = ui.item.find("img").attr("src"); 
    if (isInFavorites(itemSrc)) { alert('item allready in favorites, do not accept'); } 
    else { alert('OK, now clone back to album'); } 
    

    我一直在猛撞我的头,以此为期并希望得到一些帮助!
    JS小提琴可以在这里找到:http://jsfiddle.net/tunafish/CTps3/

    干杯!

    回答

    1

    不知道这是处理逻辑,但该事件被射击的顺序最好的办法是你的问题

    function isInFavorites(url) { 
        return $(".favorites li img[src*='" + url + "']").length > 0; 
    } 
    

    此事件运行之后该项目已被移动的来源。如果它是重复的,你将有长度2,但是你总会有长度1,因为你只是将项目移动到了下面的列表中。

    快速修复是测试$(".favorites li img[src*='" + url + "']").length > 1

    +1

    就是这样!你是对的,在'接收'方法之后,项目IS在列表中。如果我用'start'方法使用这个函数,它就像预期的那样工作。谢谢sooooo多Bobby! – FFish 2010-10-13 15:09:23