2014-04-06 43 views
-2

我的代碼存在問題。我用一個按鈕來隱藏和顯示一個菜單,但它不起作用。我不明白這個問題。切換按鈕沒有工作?(未捕獲的SyntaxError:意外的標識符)

Uncaught SyntaxError: Unexpected identifier :: par. 3

$(function() { 
    $(".but").click({ 
    if $("#div").hasClass("class"){ //problem is here 
     $("#div").removeClass("class").addClass("anotherclass"); 
    } else{ 
     $("#div").removeClass("anotherclass"").addClass("class"); 
    } 
    }); 
});'  
+0

是那個撇號在最後一個錯字嗎? – richbai90

+0

你缺少'function()'。請查看文檔中的示例http://api.jquery.com/click/,它應該很清楚。 –

+0

我想,是的。 – YigitKoc

回答

1

正如其他人說你缺少的功能,也「但」不是一個有效的選擇,和我說()if語句,但是我們在編碼偏好

$(function() { 
    $("button").click(function() { //but is not valid selector, button is 
     if ($("#div").hasClass("class")) { //problem is here 
      $("#div").removeClass("class").addClass("anotherclass"); 
     } else { 
      $("#div").removeClass("anotherclass").addClass("class"); 
     } 
    }); 
}); 
+0

但是我的一個班寫錯了。它是:(「。but」) – YigitKoc

+0

感謝所有幫助過我的人,richbai90它的工作原理。 – YigitKoc

+0

如果它適合您,請接受答案。很高興我能夠幫助。意外的標識符幾乎總是意味着某處出現語法錯誤 – richbai90

1

請首先檢查您的控制檯,你看到的啓動代碼:

SyntaxError: Expected an identifier but found '$' instead

從控制檯啓動您的調試。

您還沒有分配處理您的點擊功能,因爲你缺少function()鍵,你在你的第二個removeClass有雙重"和你的if語句錯過封閉括號。

旁註:but是一個定製的DOM標籤,如果你想選擇一個類或ID使用正確selector

代碼:

$(function() { 
    $("but").click(function() { 
    if ($("#div").hasClass("class")) { //problem is here 
     $("#div").removeClass("class").addClass("anotherclass"); 
    } else{ 
     $("#div").removeClass("anotherclass").addClass("class"); 
    } 
    }); 
}); 

演示:http://jsfiddle.net/pmHsL/

+0

AND'''but''''不是一個dom標籤,所以他可能的意思是'''$(「#但」)''' – amenadiel

+0

@amenadiel它可以是一個自定義標籤(它是允許的),但考慮到其他代碼可能是一個錯字 –

+0

我讀過Addy Osmani的文章關於自定義標籤,但我嚴重懷疑這是事實。 – amenadiel

0
$(function() { 
    $("but").click(function() { 
     if $("#div").hasClass("class")){ //problem is here 
      $("#div").removeClass("class").addClass("anotherclass"); 
     } else{ 
      $("#div").removeClass("anotherclass").addClass("class"); 
     } 
    }); 
}); 

click方法使用匿名函數,您忽略了function()。在anotherClass"上還有一個備用",最後'也不需要。而且你在if語句中還缺少)

0

我發現一個問題在你的代碼中:當你使用「點擊」快捷方式時,你必須傳遞一個函數,而不是一個對象。這裏是解決方案:

$(function() { 
    $("button").click(function(){ 
    $("#div").toggleClass("anotherclass class"); 
    }); 
}); 

注意,jQuery的方法「toggleClass」添加類(「anotherclass」)如不發現它的元素(「#div」)上,並在除去類元素如果已經存在。

相關問題