如何从.on中排除具有某些类的链接('click'

时间:2012-12-21 03:55:54

标签: jquery

我有以下设置:

$("#content-button-panel")
       .on('click', 'a:not(".folder")', function (event) {
           event.preventDefault();
           var $link = $(this);
           ServerFunctions.getContentAjax($link);
       });

我想要排除任何带有“文件夹”类的链接。我怎么能做 它排除了以下以“title -...”开头的类的链接?

<a class="title-x">xx</a>
<a class="title-123243234">yyy</a>
<a class="title-sadfdsaf">zzz</a>

3 个答案:

答案 0 :(得分:0)

您的html没有包含folder类的主题元素,您可以使用.not(),例如

$("#content-button-panel > a").not(".folder").on('click', function (event) {
     event.preventDefault();
     var $link = $(this);
     alert($link);
});

OR

$("#content-button-panel").on('click', 'a:not(.folder)', function (event) {
 ...

演示:jsFiddle 示例html

<div id="content-button-panel">
    <a href="#" class="title-x">xx</a>
<a href="#" class="title-123243234">yyy</a>
<a href="#" class="title-sadfdsaf folder">zzz</a>
</div>

答案 1 :(得分:0)

实现此目的的另一种方法是将选择器用作

$('#content-button-panel, a:not([class*="title-"], [class="folder"])')
       .on('click', function (event) {
           event.preventDefault();
           alert($(this));
       });

FIDDLE是here

答案 2 :(得分:0)

使用多个选择器,这将排除两个锚标记元素

    $("#content-button-panel")
       .on('click', 'a:not([class^="title-"]),a:not(".folder")', function (event) {
       event.preventDefault();
       var $link = $(this);
       ServerFunctions.getContentAjax($link);
   });