2017-10-20 9 views
1

WindowsデスクトップのようなWebページインターフェイスを作成しようとしています。スクリプトを実行する前にcssクラスをチェックする方法

私の問題は、スタートメニューのアプリアイコンをクリックすると、タスクバーにそのアプリアイコンを追加したいということです。それが追加される前に、このアプリがすでに開かれていることをマークするために、スタートメニューのアイコンにクラスを追加しました。アプリが既に開かれている場合は、タスクバーに新しいアプリアイコンを追加したくありません。

私は以下のコードを使用しましたが、それでもクラスが追加され、タスクバーの新しいアイコンが追加されました。

$(".app_ico").on('click', function() { 
    var checkClass = function() { 
    var check = $(".app_ico").hasClass("luanched"); 
    if (check === true) { 
     return (true); 
    } else { 
     return (false); 
    } 
    } 
    checkClass(); 

    var appIcoId = $(this).attr("id"); 
    var appId = "#" + appIcoId.substring(4); 

    if (checkClass() === false) { 

    $(this).addClass("launched"); 
    $("" + appId).addClass("app_open"); 
    $(".taskbar").append("<div>A</div>"); 

    } else { 
    $("" + appId).addClass("app_open"); 
    } 
+1

変更var check = $( "。app_ico")。hasClass( "luanched"); var check = $( "。app_ico")。hasClass( "started"); –

+0

ありがとうございますが、私はあなたが何を意味するのか理解できませんでした。 –

+0

起動のスペルが間違っています –

答えて

1

あなたはクラスlaunchedを設定し、まだluanchedをチェックするために問題があります。また、あなたのロジックを改善することができます。たとえば、checkClass()機能は完全に冗長です。これを試してください:

$(".app_ico").on('click', function() { 
    $("#" + this.id.substring(4)).addClass("app_open"); 

    if (!$(this).hasClass("launched")) {  
    $(this).addClass("launched"); 
    $(".taskbar").append("<div>A</div>"); 
    } 
}); 
+0

ありがとうございました。それは本当に機能します。 :) –

0

使用hasClass

if($("selector").hasClass("calss")) 
{ 
// if selector has class 
} else{ 
// no chance 

} 
関連する問題