$ ("# content a: not (target = _blank)") не работает .. что я делаю не так? - PullRequest
1 голос
/ 20 августа 2011

Просто быстро. Что я тут не так делаю?

$("#content a:not(target=_blank)").live("click", function(){
   alert("You clicked an internal link!!")
})

Приветствия:)

Ответы [ 5 ]

7 голосов
/ 20 августа 2011

Вы можете использовать атрибут, не равный селектору:

$("#content a[target!='_blank']").live("click", function(){
   alert("You clicked an internal link!!");
});
5 голосов
/ 20 августа 2011

селектор jQuery :not() принимает селекторы внутри него, поэтому попробуйте что-то вроде этого:

$('#content a:not([target="_blank"])').live("click", function(){
   alert("You clicked an internal link!!")
})
1 голос
/ 20 августа 2011

Попробуйте это:

$("#content a:not([target='_blank'])").live("click",your_function);
1 голос
/ 20 августа 2011

Вам не хватает квадратных скобок для селектора атрибута и кавычек вокруг значения.

$('#content a:not([target="_blank"])')

Здесь также будут работать одинарные кавычки.

$("#content a:not([target='_blank'])")

Я полагаю, что это была версия 1.6.0, в которой кавычки атрибутов стали обязательными, в предыдущих версиях это было необязательно, и это сломало большую часть моего кода, когда я обновлялся. Похоже, что 1.6.2 или 1.6.1, возможно, удалили это требование, хотя документы говорят, что они все еще являются обязательными. Лучше делать то, что они говорят, в случае, если обратная поддержка будет удалена в будущей версии.

Однако, как селектор CSS, он по-прежнему необязателен по большей части , так что, по крайней мере, привыкните использовать его в jQuery с этого момента, если вы этого еще не сделали.

1 голос
/ 20 августа 2011

скобки

$("#content a:not([target=_blank])").live("click", function(){
   alert("You clicked an internal link!!") 
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...