-3

これは私の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を使用しています

4

2 に答える 2

1

あなたのコメントから、単に次を使用する必要があるように思えます。

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

:internaljQuery でデフォルトで使用できるセレクターではありません。

于 2013-02-08T10:51:33.050 に答える
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"));  
    }  
  }  
);  
于 2013-02-08T10:22:58.900 に答える