2016-07-16 18 views
0

もう1つtoggleClass()問題です。このjQuery関数について何十もの質問がありますが、私はこの特定のものを見つけることができませんでした。toggleClass()で作成されたクラスは、クリックイベントで警告されません

私には2つのボタンがあります。 Oneはクリック時に他のクラスを切り替えます。これは色が変わるのでうまくいきますが、 'new'クラスでclick()イベントを使用しても何も起こりません。

HTML

<button type='button' id='button1'>button 1</button> 
<button type='button' id='button2'>button 2</button> 

CSS

.pushed { 
    background-color: salmon; 
} 

JS

$('#button1').click(function() { 
    $('#button2').toggleClass('pushed'); 
}); 

$('.pushed').click(function() { 
    alert('pushed!') 
}); 

あなたはここでそれを試すことができます:https://jsfiddle.net/tk9pt3o2/

+0

@Rob編集が間違っています...色が変わると、問題は「プッシュ」と警告されないということです – skamsie

+0

タイトルを編集して反映させてください。 – Rob

答えて

2

さらに、.pushedの要素を選択すると、その前にも存在するためです。これを使用してみてください:

$(document).on('click', '.pushed',function() { 
    alert('pushed!') 
}); 

onは、現在のマッチした要素と将来へのクリックイベントをバインドする要素に一致しました。

+0

はい、意味があります...正確に私が必要なもの、ありがとう! – skamsie

0

既存のDom要素にイベントを登録するだけでよいことを考慮してください。 キーポイントは$( '.pushed')です。イベントを登録する要素がないjqueryオブジェクトを返します。

関連する問題