首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引导类中的jQuery选择器

问引导类中的jQuery选择器
EN

Stack Overflow用户
提问于 2016-09-19 14:43:00
回答 2查看 791关注 0票数 0

当我尝试选择包含在带有引导类的div中的元素时,我似乎在使用jQuery时遇到了问题。

守则是:

代码语言:javascript
复制
    <div class="sec">
  <div class="dropdown">
        <h4>Management</h4><hr>
        <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
            Staff <span class="caret"></span>
        </button>
        <ul class="dropdown-menu">
            <li><a href="#" data-intrf="dir-01-01" >List</a></li>
            <li><a href="#" data-intrf="dir-01-02">Register</a></li>
            <li><a href="#" data-intrf="dir-01-03">Categories</a></li>
            <li class="divider"></li>
            <li><a href="#" data-intrf="dir-01-04">Messages</a></li>
        </ul>
</div></div>

jQuery代码是:

代码语言:javascript
复制
$('#secInterf').on("click", 'a[data-intrf]', function(){
        alert('What Ever');
});

html代码(带有class=“sec”的div )作为动态内容放置在主页的div(带有id="secInterf")中。问题是,jQuery似乎无法识别带有属性数据的锚点。

对于放置在同一个div (#secInterf)中的其他动态内容,我没有任何问题;所以,我不知道这是jQuery和Bootstrap之间的某种冲突,还是使用了错误的选择器来获得带有属性数据的锚点。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-19 17:12:45

尝试交换第一个选择器,如:

代码语言:javascript
复制
$(document.body).on('click', 'a[data-intrf]', function(){ 
   alert('What Ever'); }
);

解释:由于您没有共享完整的代码,只是一个例外,我可以推测,但是由#secInterf选择它的一个可能的原因是,在初始页面加载中,元素是而不是(您也动态地插入了它)。

使用主体或文档作为委托事件的第一个选择器应该总是有效的。这不是最佳实践,因为您应该尝试使用更接近于动态元素的选择器,因为性能原因也是如此:https://api.jquery.com/on/#direct-and-delegated-events

编辑:如OP所述,使用$('body')选择器为他工作。实际上和上面的选择器是一样的。这种差异只是性能上的差异,并在这里详细解释了Difference between $(document.body) and $('body') JQuery

票数 0
EN

Stack Overflow用户

发布于 2016-09-19 14:56:45

试图使用这段代码..。

$(document).on('click','#Selector' function(){ console.log('What you want '); //it's better then alert (i think). });

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39575944

复制
相关文章

相似问题

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