2016-01-08 178 views
1

我有一個小問題,我的jQuery代碼。衝突點擊和懸停動畫Jquery

這裏是我的代碼:

$("#bloc-search").click(function(){ 
     $(this).toggleClass("bloc-search-highlight"); 
     //var jObj = $(this); 
}); 

if ($("#formulaire-search").is(':visible')){ 

    $('.search').attr('src', '/img/search-blanc.png'); 

} else { 

    $("#bloc-search").hover(
     function(){ 
      $('.search').attr('src', '/img/search-blanc.png'); 
     }, function(){ 
      $('.search').attr('src', '/img/search-blue.png'); 
    }); 

} 

它的工作原理幾乎完美,但我的問題時,我的#formulaire搜索是可見懸停功能還在工作,我不知道爲什麼,因爲我如果我沒有懸停功能。 我也嘗試用hasClass而不是可見的方式...

一個想法?

謝謝您的幫助;-)

回答

1

你可以試試這個:

if ($("#formulaire-search").is(':visible')){ 
    $("#bloc-search").unbind('mouseenter mouseleave'); 
    ... other stuff ... 
} else { 
    $("#bloc-search").bind('mouseenter mouseleave'); // to be sure 
    ... other stuff ... 
} 

您可能當你需要懸停功能

UPDATE

重新綁定,然後

這是可行的 - 使用mouseentermouseleave效果很好,也可以使用ķ本身一樣簡單

if ($("#formulaire-search").is(':visible')){ 

    $('.search').attr('src', '/img/search-blanc.png'); 

} else { 

    // do what you want here - only works when #formulaire-search not visible  
    $("#bloc-search").on('mouseenter', function(){ 
      $(this).addClass('goTeal'); 
    }); 

    $("#bloc-search").on('mouseleave', function(){ 
      $(this).removeClass('goTeal'); 
    }); 

} 

Here's a fiddle to look at

+0

謝謝你的答案,但它仍然沒有工作。即使有你的想法: 'if($(「#formulaire-search」)。(':visible')){(「#bloc-search」)。 ('。search')。attr('src','/img/search-blanc.png'); ('#bloc-search「)。bind('mouseenter mouseleave');其他{ } else { ('#search').hover( function(){('。search')。attr('src',' ){ $('。search')。attr('src','/img/search-blue.png'); }); }' – gat91200

+0

嗨達倫,我試着用你的更新(mouseenter,mouseleave),它仍然無法正常工作。我不知道爲什麼mouseenter和mouseleave仍處於活動狀態,而div卻是可見的:-( – gat91200

+0

)您是否看過我製作的小提琴?它的工作原理如果不是,那麼我懷疑其他東西導致它失敗 - 是否存在ant控制檯錯誤? –