【问题标题】:I would like this jquery ui code explained please我想请解释一下这个 jquery ui 代码
【发布时间】:2012-11-20 03:53:24
【问题描述】:

我正在阅读这段代码 (http://jqueryui.com/droppable/#photo-manager), 但无法理解某一特定行

var $gallery = $( "#gallery" ),
    $trash = $( "#trash" ); 

$( "li", $gallery ).draggable({ //This is the line a I can't understand well
        cancel: "a.ui-icon", 
        revert: "invalid", 
        containment: "document",
        helper: "clone",
        cursor: "move"
});

为什么 $gallery 在那里?它不会使 $gallery 可拖动,只有 <li> 是可拖动的。

似乎只有#gallery中的<li>可以拖动,但使用$("#gallery li")$("#gallery > li")很容易做到这一点

那么有什么不同呢?

【问题讨论】:

    标签: jquery jquery-ui draggable


    【解决方案1】:

    $() 函数的第二个参数是context。相当于:

    $gallery.find('li');
    

    是的,在这种情况下,您也可以这样做:$("#gallery li"),但 context 选项很好,当您只是传递一个 DOM 元素或 jQuery 对象,并且不知道它的选择器时。

    【讨论】:

    • 谢谢大佬,我现在知道了,我不知道第二个参数,你能给我一个真正有用的代码示例吗?
    • @Dave:如果你正在制作一个 jQuery 插件。你所拥有的只是 jQuery 对象,而不是它的选择器。所以,如果你想找到孩子,$('li', $gallery)$gallery.find('li'); 短。
    【解决方案2】:

    根据 jQuery 文档:“$("> elem", context) 选择器将在未来的版本中被弃用。因此不鼓励使用它来代替使用替代选择器。”

    当照片管理器中的代码被弃用时,他们可能会调整它。我看不出在用法上有什么不同,只是看起来“少了一些 jQuery”。

    【讨论】:

    • 你在哪里看到$("> elem", context)
    • 它是$("elem", context),但看到$("> elem", context) 将被弃用,我不会使用这种结构。
    • 不推荐使用的部分是在选择器的开头使用> 来查找上下文元素的直接子元素 - 提供一般意义上的上下文就可以了。
    猜你喜欢
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多