Jquery несколько селекторов «a» с .not, вызывающим синтаксическую ошибку, нераспознанное выражение

Для функции «клик» с jquery 1.8 у меня есть этот код

  $(document).ready(function(){

    var siteURL = "http://http://stackoverflow.com";
      
    var $internalLinks = $("a[href^='"+siteURL+"'], a[href^='/'], a[href^='./'], a[href^='../'], a[href^='#'], .loader[onclick]:not(#external)");

    var $excludeIntern = $('a[target=_blank], a[href*="vcf"], .no-ajaxy, a[href*="wp-login"], a[href*="wp-admin"], a[href*="gif"]');
        			
    $internalLinks = $internalLinks.not($excludeIntern);

    $internalLinks.live('click', function(event){alert("ok");})
                        
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
	 <a href="#test">link1</a>
    <a href="/test">link2</a>
    <a href="/test" target="_blank">link3</a>
    <a href="http://google.de">link4</a>

что вызывает:

«Синтаксическая ошибка, нераспознанное выражение».

Без селектора .not это работает, но мне нужно исключить некоторые ссылки из этой функции.

Кто-нибудь знает, почему?


person mahakala    schedule 31.01.2016    source источник
comment
Какая версия jQuery? Как насчет предоставления примера, воспроизводящего вашу проблему?!   -  person A. Wolff    schedule 31.01.2016


Ответы (1)


Метод .live() устарел, начиная с версии jQuery 1.7. Попробуйте вместо этого использовать .on(), чтобы прикрепить обработчики событий к соответствующим элементам:

 $internalLinks.on('click', function(event){
   alert("ok");
 });

Демо

person Ahmad Baktash Hayeri    schedule 31.01.2016