2014-01-06 59 views
-4

這是我的標記,從我sublayout:爲什麼我點擊功能不addClass或removeClass

<div class="main-nav"> 
     <a id="tabmovies" href="#" class="main-nav-tab active">Movies</a> 
     <a id="tabtheatres" href="#" class="main-nav-tab">Theatres</a> 
    </div> 
</div> 

,這是我的.js ...該警報指示點擊功能正在

// Toggle between movies and theatres 
    $("#tabmovies").click(function() { 
     alert("you have clicked movies"); 
     $("tabmovies").addClass("active"); 
     $("tabtheatres").removeClass("active"); 

    }); 

    $("#tabtheatres").click(function() { 
     alert("you have clicked theatres"); 
     $("tabmovies").removeClass("active"); 
     $("tabtheatres").addClass("active"); 

    }); 

但類「活動」不被添加或刪除。我錯過了什麼嗎?

+0

你的選擇是不正確的,你正在尋找一個標籤'tabmovies'不存在。 – elclanrs

+0

tabmovies應該用$('#tabmovies')表示,等等 – Rohan

+2

我不確定人們爲什麼低估這個問題。標題可能略有不清,但總的來說,問題和問題非常明確。當然人們並不抱怨這個問題太窄,因爲SO不鼓勵元問題,關於意見的問題,關於最佳實踐的問題等。 – shannon

回答

2

要在jquery中使用ID選擇元素,請使用"#theID"作爲選擇器。

變化

$("tabtheatres").addClass("active"); 

$("#tabtheatres").addClass("active"); 
0

更改您的代碼如下:

// Toggle between movies and theatres 
    var $tabmovies = $("#tabmovies"), 
     $tabtheatres = ("#tabtheatres") 
    $tabmovies.click(function() { 
     alert("you have clicked movies"); 
     $tabmovies.addClass("active"); 
     $tabtheatres.removeClass("active"); 

    }); 

    $tabtheatres.click(function() { 
     alert("you have clicked theatres"); 
     $tabmovies.removeClass("active"); 
     $tabtheatres.addClass("active"); 

    }); 

DEMO

你不選擇任何東西,因爲你應該正確指定選擇器。如果id選擇符使用#符號。對於類選擇器使用.瞭解jquery選擇器here。並避免在您的代碼中的多個查詢。多次選擇並使用參考。它會帶給你性能增益。

1

試試這個,

$("#tabmovies").click(function() { 
    alert("you have clicked movies"); 
    $("#tabmovies").addClass("active"); 
    $("#tabtheatres").removeClass("active"); 

}); 

$("#tabtheatres").click(function() { 
    alert("you have clicked theatres"); 
    $("#tabmovies").removeClass("active"); 
    $("#tabtheatres").addClass("active"); 

}); 

您需要的id選擇之前添加#

FIDDLE DEMO