2016-12-16 1 views
-2

は、私が持っていると言う:jQueryの - クリックでダイナミックなCSSによってフィルタ要素のために働いていない

<a href="http://foo.com" class="SiteClass"> 

それから私はjQueryを介して、私はSiteDown CSSでの追加例えば、いくつかのテストを行うと、条件付きで結果に応じてクラスを更新します

$("a .SiteDown").on('click', function(e){ 
    e.preventDefault(); 
    e.stopPropagation(); 
    alert('Clicked SiteDown'); 
}); 
:私は発生しません、次のJavaScriptを持って

<a href="http://foo.com" class="SiteClass SiteDown"> 

:結果としてjQueryのaddClass方法、

クラスSiteDownのリンクがクリックされたときにアラート(または他のコード)を発生させるために必要なことは、このクラスを動的に追加できることに留意してください。

答えて

3

セレクタが間違っています。クラスセレクタで要素に変換するためにスペースを削除してください。

$("a.SiteDown").on('click', function(e){ 
    //.... 
}); 

現在のところ、その子孫セレクタです。


操作セレクタは、on()を使用してEvent Delegationを使用するときにアプローチしている通り。

$(document).on('click', "a.SiteDown", function(e){ 
    //.... 
}); 

documentの代わりに、あなたは、最寄りの静的なコンテナを使用する必要があります。

+0

ありがとうございます。セレクターの問題を修正しました。これは、ページがロードされたときにSiteDownクラスを既に持っていても何も起動しない要素に対してはうまくいきます。 'addClass()によって' SiteDown'を追加します。 –

+1

@ Dr.Avalancheだから、イベント –

+2

@ Dr.Avalanche、更新版の回答 – Satpal

2

$("a .SiteDown")のコードでは、aの子である要素を探していて、それは問題ありません。 $("a.SiteDown")を使用してください。SiteDown

関連する問題