2015-04-03 60 views
-1
function main() 
{ 
console.log("document ready, Javascript running"); 
    $(".openmenu_container").mouseover(function(){ 
console.log("mouseover triggered"); 
$(".sidebar").css("left","0px"); 
$(".openmenu_container").css("left","-200px");); //Uncaught SyntaxError: Unexpected token) 

    $(".sidebar").mouseleave(function(){ 
console.log("mouseleave triggered"); 
$(".sidebar").css("left","-200px"); 
$(".openmenu_container").css("left","40px");}); 
}} 
$(document).ready(main); 

我已經在我的網站上使用.click()函數的功能邊欄。我想這樣做,以便通過「打開菜單」按鈕進行鼠標移動就足以打開菜單,並且一旦菜單打開,如果用戶將鼠標移出菜單div,菜單將自動關閉。Jquery .mouseover錯誤,不會觸發

錯誤消息是唯一記錄到控制檯的事件,這意味着我的代碼甚至不會運行。錯誤chrome給了我,「Uncaught SyntaxError:Unexpected token」)沒有任何意義,因爲需要第二個')'來完成.mouseover()。我究竟做錯了什麼?我需要第二個參數作爲.mouseover嗎?

的jsfiddle:http://jsfiddle.net/dsghfnrd/2/

+0

哪裏右括號? – 2015-04-03 05:51:27

回答

0

您還沒有關閉)}

在這一行:

$(".openmenu_container").css("left", "-200px");); 

你錯過了}必須關閉mouseover event

然後在側邊欄事件處理程序下面,您有一個額外的}

所以,你的更正後的代碼看起來像:

function main() { 
    console.log("document ready, Javascript running"); 
    $(".openmenu_container").mouseover(function() { 
     console.log("mouseover triggered"); 
     $(".sidebar").css("left", "0px"); 
     $(".openmenu_container").css("left", "-200px"); //Uncaught SyntaxError: Unexpected token) 
    }); 

    $(".sidebar").mouseleave(function() { 
      console.log("mouseleave triggered"); 
      $(".sidebar").css("left", "-200px"); 
      $(".openmenu_container").css("left", "40px"); 
    }); 


} 
    $(document).ready(main); 

此外,希望要mouseleave事件上sidebar綁定outisde mouseover事件的openmenu_container.

+0

謝謝。是的,我的意思是在鼠標懸停事件之外有這樣的事情。側邊欄div從屏幕開始,所以它並不重要,但現在我想到了,我認爲將它放在mouseover事件中會更好。 – 2015-04-03 07:16:49

+0

設置一個jsfiddle,我們將能夠快速解決它。 – mohamedrias 2015-04-03 07:18:18

+0

我建立了一個jsfiddle。這是我第一次使用jsfiddle並與其他人分享,所以我不確定我是否正確設置它。 – 2015-04-03 07:30:33

0
function main() { 
    console.log("document ready, Javascript running"); 
    $(".openmenu_container").mouseover(function() { 
     console.log("mouseover triggered"); 
     $(".sidebar").css("left", "0px"); 
     $(".openmenu_container").css("left", "-200px"); 
    });//add this 

    $(".sidebar").mouseleave(function() { 
      console.log("mouseleave triggered"); 
      $(".sidebar").css("left", "-200px"); 
      $(".openmenu_container").css("left", "40px"); 
    }); 


} 
    $(document).ready(main); 
+0

錯誤消失並且腳本運行,但.mouseover()仍然不會觸發。 – 2015-04-03 06:59:48

0

代碼波紋管會工作的。你可以使用一個編輯器來突出顯示你的sytax!

function main() 
{ 
console.log("document ready, Javascript running"); 
$(".openmenu_container").mouseover(function(){ 

    //console.log("mouseover triggered"); 
    $(".sidebar").css("left","0px"); 
    $(".openmenu_container").css(
      "left","-200px" 
); //Uncaught SyntaxError: Unexpected token) 

    $(".sidebar").mouseleave(function(){ 
    //console.log("mouseleave triggered"); 
    $(".sidebar").css("left","-200px"); 
    $(".openmenu_container").css("left","40px"); 
}); 
}); 
}; 
$(document).ready(main); 

編輯 @ mohamedrias的回答顯示出更好的代碼分析

+0

它與我們在下面建議的有什麼不同?你也沒有解釋錯誤 – mohamedrias 2015-04-03 06:52:29

+0

只是想指向@Issac使用編輯器 – mehany 2015-04-03 06:59:02

0

嘗試是這樣的....

$(document).ready(function() { 
    console.log("document ready, Javascript running"); 
    $(".openmenu_container").mouseover(function() { 
     console.log("mouseover triggered"); 
     $(".sidebar").css("left", "0px"); 
     $(".openmenu_container").css("left", "-200px"); 
    });//add this 

    $(".sidebar").mouseleave(function() { 
      console.log("mouseleave triggered"); 
      $(".sidebar").css("left", "-200px"); 
      $(".openmenu_container").css("left", "40px"); 
    }); 

});