2012-04-02 19 views
0

这是我的问题。每次我加载页面时,我都会收到一条警告消息,并点击“我”,但我无法理解我做错了什么。我没有点击过。 mouseover或我添加的任何函数也会发生同样的情况。未采取行动检测到jQuery操作

<script> 
    $jq().ready(function(){ 
     $jq(".clickable").click(alert("Click")); 
     // Hide all the questions and answers 
     $jq(".faq-section").each(
      function(){ $jq(this).css("display", "none"); } 
     ); 
    }); 
</script> 

我很抱歉,如果这是一个愚蠢的问题。

+0

作为一个侧面说明,你的'.each'可以消除 - '.css'将在内部做了一个'。每'循环,以便'.css'应用于所有选定的元素。 – pimvdb 2012-04-03 12:50:46

回答

5

这是因为这一行$jq(".clickable").click(alert("Click"));。您不用传递函数引用,而是在这里调用函数。

将其更改为

$jq(".clickable").click(function(){ 
    alert("Click"); 
    //do stuff here 
}); 
+0

+1,很好的解释。 – 2012-04-02 21:20:56

3
$jq(".clickable").click(alert("Click")); 

应该

$jq(".clickable").click(function(e){ alert("Click"); e.preventDefault(); });