0

我有以下设置:

$("#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>
4

3 回答 3

0

您的 html 没有具有类的锚元素folder,您可以使用.not(),例如

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

或者

$("#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>
于 2012-12-21T04:04:53.513 回答
0

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

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

小提琴在这里

于 2012-12-21T04:07:16.153 回答
0

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

    $("#content-button-panel")
       .on('click', 'a:not([class^="title-"]),a:not(".folder")', function (event) {
       event.preventDefault();
       var $link = $(this);
       ServerFunctions.getContentAjax($link);
   });
于 2012-12-21T04:07:55.997 回答