2017-10-20 68 views
1

我試圖創建一個看起來像Windows桌面的網頁界面。如何在運行腳本之前檢查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

change 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 

} 
相關問題