2012-10-05 45 views
1

我正在使用3個選項卡,懸停事件似乎沒有踢英寸我有一些PHP,它決定我們是否在我們應該使用不同的圖像源,因此PHP。據我所見,PHP正在吐出正確的SRC。試圖調試jquery的`.hover`事件

代碼:

$("#tab1").hover(
    ("#tab1").attr("src","img/home_menu_images/png/home_mainmenu_hover_tab1.png"), 
    ("#tab1").attr("src","PHP_SRC1")); 

$("#tab2").hover(
    ("#tab2").attr("src","img/home_menu_images/png/home_mainmenu_hover_tab2.png"), 
    ("#tab2").attr("src","PHP_SRC2")); 

$("#tab3").hover(
    ("#tab3").attr("src","img/home_menu_images/png/home_mainmenu_hover_tab3.png"), 
    ("#tab3").attr("src","PHP_SRC3")); 

哪裏PHP_SRC(num)是圍繞回聲$tab_image_(num)一個PHP打開和關閉標籤。

+0

我不明白。你想綁定「懸停」事件嗎?原因在那種情況下,您需要將2個函數傳遞給$ .hover函數? – charly

+0

我知道它現在已經被編輯過了,但是在未來將代碼放置在帖子中時,請使用「代碼」包裝,它看起來像'{}'的按鈕只是寫出代碼,然後突出顯示它,然後點擊該按鈕。 – chris

+0

我會用'delegate()'而不是'bind()'作爲綁定,如果使用不當,可能會很危險。它也很麻煩。儘管attr是一個很好的函數,但爲了嘗試使用'prop()'而不是'attr()',儘管有些事情有時會給它帶來問題。也。另一種方法是讓兩個圖像都加載一個顯示爲none的屬性,放在要換出的圖像旁邊。你可以分別做'show()'/'hide()'。 – chris

回答

0

我的第一個傾向是您在mouseover, mouseout函數的開頭缺少$。嘗試在其中加入:

$("#tab1").hover(
    $("#tab1").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab1.png"), 
    $("#tab1").attr("src", "PHP_SRC1") 
); 
$("#tab2").hover(
    $("#tab2").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab2.png"), 
    $("#tab2").attr("src", "PHP_SRC2") 
); 
$("#tab3").hover(
    $("#tab3").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab3.png"), 
    $("#tab3").attr("src", "PHP_SRC3") 
); 

如果還是不行,請嘗試匿名函數包裹他們:

$("#tab1").hover(
    function() {$("#tab1").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab1.png");}, 
    function() {$("#tab1").attr("src", "PHP_SRC1");} 
); 
$("#tab2").hover(
    function() {$("#tab2").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab2.png");}, 
    function() {$("#tab2").attr("src", "PHP_SRC2");} 
); 
$("#tab3").hover(
    function() {$("#tab3").attr("src", "img/home_menu_images/png/home_mainmenu_hover_tab3.png");}, 
    function() {$("#tab3").attr("src", "PHP_SRC3");} 
); 
0

我真的不喜歡jQuery的標籤從我自己的角度來看...有一個更簡單的方法來製作標籤...你添加html錨與ul標籤結合,然後你添加jquery點擊事件...在點擊事件你做$ post或$ get然後你渲染什麼你在一個div容器中打...這比使用這些選項卡控件更簡單...

<ul class="menu"> 
    <li><a onclick="function1()" class="active">tab1</a></li> 
    <li><a onclick="function2()">tab2</a></li> 
</ul> 

<div id="content"> 
</div> 

<script> 
    function function1() { 
    $('#content').html('Loading...'); 
     $.get("/yourdomain/someurl1", { }, function(data) {    
      $('#content').html(data); 
     }); 
    } 

    function function2() { 
    $('#content').html('Loading...'); 
     $.post("/yourdomain/someurl2", { id: 1}, function(data) {    
      $('#content').html(data); 
     }); 
    } 
</script> 

這取決於你