親LIが特定のクラス(.current)を持っていない限り、クリック関数をA要素に追加しようとしています。
以下は機能していないようです。
$('ul li:not(.current) a').click(function (e) {
これがjsFiddleです:
'ulli.currenta'に対してクリック関数を実行したくない-'ulli a'(.currentなし)のみ
確かに私は非常に単純な何かを逃しました...どんな助けもありがたいです!:)
親LIが特定のクラス(.current)を持っていない限り、クリック関数をA要素に追加しようとしています。
以下は機能していないようです。
$('ul li:not(.current) a').click(function (e) {
これがjsFiddleです:
'ulli.currenta'に対してクリック関数を実行したくない-'ulli a'(.currentなし)のみ
確かに私は非常に単純な何かを逃しました...どんな助けもありがたいです!:)
を使用する代わりに、小さな条件を追加する必要があり:not('.current')
ます。
if ($(this).parent().hasClass('current')) return;
実行する$('ul li:not(.current) a')
とイベントがバインドされ、その時点でクラスcurrentのliはありません。
デモ:http: //jsfiddle.net/WvPE7/5/
完全なコード:
$('ul li a').click(function (e) {
e.preventDefault();
if ($(this).parent().hasClass('current')) return;
$('p').hide();
$('li').removeClass('current');
$(this).parent().addClass('current');
var myClass = $(this).attr('class');
$('p.' + myClass).fadeIn();
});
.on()
次の方法を使用して、単純な委任でそれを行うことができます。
$('ul').on('click', 'li:not(.current) a', function(e) {
// ...
});
.on()
あなたはここでもっと知ることができます。
ここで動作しています:http://jsfiddle.net/WvPE7/7/
振り向く
$('ul li:not(.current) a').click(function (e) {
の中へ
$('ul').on('click', 'li:not(.current) a', function (e) {