JQuery Internal不起作用

时间:2013-02-08 10:20:26

标签: javascript jquery ajax dom internal

这是我的javascript代码

$(this).find('a:internal:not(.no-ajaxy)').on('click',function(evt) {
        evt.preventDefault();
        History.pushState(null, $(this).text(), $(this).attr('href'));
    });

这是我试图不在

上应用ajax的链接
 <a href="#loginModal" class="btn btn-success no-ajaxy" data-toggle="modal">Login &rsaquo;&rsaquo;</a>

这里的问题是我的脚本给了我这个错误

Uncaught Error: Syntax error, unrecognized expression: unsupported pseudo: internal 

我目前正在使用jQuery v1.8.3

2 个答案:

答案 0 :(得分:1)

根据您的评论,听起来您只需要使用以下内容:

$(this).find('a:not(.no-ajaxy)').on('click', function() {
     // your code...
});

:internal不是jQuery默认的选择器。

答案 1 :(得分:0)

我认为您必须创建自定义选择器(http://dpatrickcaldwell.blogspot.ch/2010/03/custom-jquery-selector-for-external-and.html的副本):

jQuery.extend(  
  jQuery.expr[ ":" ],  
  {  
    /* 
      /:\/\// is simply looking for a protocol definition. 
      technically it would be better to check the domain 
      name of the link, but i always use relative links 
      for internal links. 
    */  

    external: function(obj, index, meta, stack)  
    {  
      return /:\/\//.test($(obj).attr("href"));  
    },  

    internal: function(obj, index, meta, stack)  
    {  
      return !/:\/\//.test($(obj).attr("href"));  
    }  
  }  
);