2011-07-03 186 views
1

我有一個很奇怪的問題。我正在使用jQuery攔截特定的標籤點擊。jQuery的問題與選擇

我:

<a class="question">lorem ipsum</a> 
<a class="question_selected">lorem ipsum</a> 
<a class="question">lorem ipsum</a> 
<a class="question">lorem ipsum</a> 

我的jQuery是:

$("a.question").click(function(){.....}); 

應該攔截<a>點擊這裏類= 「問題」,但它也每當我點擊<a class="question_selected">攔截。

可能是什麼問題?

編輯: 其實我改變對點擊類。我點擊的標籤應該變成「question_selected」,所有其他的應該是「問題」。這裏是jQuery的:$('a.question_selected').removeClass('question_selected').addClass('question'); $(this).addClass('question_selected').removeClass('question');

+0

你的問題本身並不完整。 '每當我點擊'什麼?此外,您的事件處理程序將在第1次,第3次和第4次'a'點擊中觸發。 – Mrchief

+0

@Mrchief:您可能需要刷新頁面(在您看到此評論時您可能已完成)。 – BoltClock

回答

4

從類中刪除名稱下劃線。也許有關於jQuery的一個錯誤。

否則,這並不直接回答你的問題,但一些建議:

首先,而不是交換的課,我只用了兩個類:

<a class="question">lorem ipsum</a> 
<a class="question selected">lorem ipsum</a> 

然後,在您的jQuery的,我想緩存您的問題:

$questions = $('a.question'); 

然後你的jQuery的可能是:

$questions.click(function(){ 
    $questions.filter('.selected').removeClass('selected'); 
    $(this).addClass('selected'); 
}) 
+0

我不確定,但它看起來像jQuery與我使用_的問題。我有以下DA的解決方案,它運作良好。 非常感謝所有在這裏回答我的人。所有的努力幫助我診斷問題:) – Blueboye

0

你忘了關閉標籤?

你有沒有做過任何可能會將另一個元素的填充放在另一個元素頂部的定位?

你是動態更新的類?你在這些更新之前還是之後分配點擊處理程序?你確定你不想要live()嗎?

0
$("a.question").live('click',function(){ 

    $(this).removeClass('question'); 
    $(this).addClass('question_selected'); 

    $(this).siblings('a').removeClass(); 
    $(this).siblings('a').addClass('question'); 

});