【问题标题】:Issue with .delegate and .closest.delegate 和 .closest 的问题
【发布时间】:2012-10-25 16:54:18
【问题描述】:
$('document').delegate('.seeMore a', "click", function() {
    var $allTabs = $(this).closest('.globalTabs').find('.allTabs');
    $allTabs.slideDown('slow'); 
});

DOM 元素是:

<div class="globalTabs">
    <ul>
        <li>
            <a>some link</a>
        </li>
        <li>
            <a>some link</a>
        </li>
        <li class="seeMore">
            <a>some link</a>
        </li>
    </ul>
    <div class="tabContent">
        some content
    </div>
    <div class="allTabs">
        mutliple links
    </div>
</div>

上面的函数在.each 中——所以对于每个.globalTabs,这个函数都应该运行。

但它似乎根本找不到元素,即使页面上只有一个元素,seeMore a 也没有与之关联的任何事件(使用视觉事件来确定)。

想法?

(我应该提到 bind 有效,但 live 无效)。

【问题讨论】:

  • 不认为 $('document').. 应该工作.. 尝试 $(document);
  • 哈哈哈。我讨厌犯愚蠢的语法错误,然后完全错过它们

标签: jquery jquery-delegate


【解决方案1】:

第一个选择器中的document 不需要引号:

// v------v-------- 'document' should be an object, not a string
 $(document).delegate(".seeMore a", "click", function() { ... });

【讨论】:

    猜你喜欢
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多