2012-10-31 47 views
0

我不知道我在做什麼錯here.i有一個div,我想打開一個彈出窗口,如果用戶將鼠標懸停在該div部分上,並希望關閉mouseout。這裏是我的代碼PopUp無法在mousehover上打開

<div class="topCart"> 
    some data 
</div> 

這是我的jQuery代碼

$(".topCart").mouseover(function() { 
    $.get('${rolloverPopupUrl}?bustcache=' + new Date().getTime(), 
    function(result) { 
     $('#viewCart').html(result); 
     refreshMiniCart(); 
     }); 
    $('#viewCart').slideDown('slow'); 
    }).mouseout(function() { 
    $('#viewCart').slideUp('fast'); 
    }); 

上面的代碼是不工作也沒有了它給予任何Ajax調用來獲取新的數據,而如果我用下面的代碼

$(document).ready(function(){ 
    $(".topCart").hover(function() { 
    $('#viewCart').html(""); 
    $.get('${rolloverPopupUrl}?bustcache='+new Date().getTime(), function(result){ 
    $('#viewCart').html(result); 
    refreshMiniCart(); 
    }); 
    if($('#viewCart').is(':hidden')){ 
     $('#viewCart').slideDown('slow'); } 
     }, 
     function() { 
      $('#viewCart').slideUp('fast'); 
     }); 
}); 

這段代碼正在工作,其取數據,所以我沒有看到使用document.ready 與我有限的Jquery的知識,我試過但無法看到reaso沒有工作的代碼 可以任何一個點我的錯誤?

+0

你試過調試嗎?任何錯誤? – zomboble

+0

@zomboble:我從firebug獲得了幫助,它在控制檯上顯示沒有錯誤 –

+0

您將需要document.ready方法,否則它將不會執行您擁有的功能,我正在努力理解問題抱歉 – zomboble

回答

0

嘗試在打字時嘗試一些基本的結構和清潔度(這是旁邊的敬虔)我們的代碼,和定位誤差會容易得多:

$(function() { 
    $(".topCart").on({ 
     mouseenter: function() { 
      var elem = $('#viewCart'); 
      elem.empty();   
      $.get('${rolloverPopupUrl}?bustcache=' + new Date().getTime(), function(result) { 
       elem.html(result); 
       refreshMiniCart(); 
      }); 
      if (!elem.is(':visible')) elem.slideDown('slow'); 
     }, 
     mouseleave: function() { 
      $('#viewCart').slideUp('fast'); 
     } 
    }); 
});​ 
+0

感謝您的投入,當我使用上面的代碼時,在購物車彈出窗口上出現了很多閃爍,我不確定可能是什麼原因造成的 –

0

第一個代碼不起作用,因爲當您設置事件時,並非所有的DOM元素都被下載。並且它導致$(".topCart")的結果爲空。這不會觸發任何erros,語法是正確的,問題是jQuery與html一起工作,這是不完整的。

$(document).ready(...)

$(function() { 
// Handler for .ready() called. 
}); 
0
$(document).ready(function() { 
    $(".topCart").mouseover(function() { 
     ... 
    } 
}); 

您需要使用的document.ready之前事件可以觸發,所有的DOM元素已經加載的文件,你可以肯定後,否則你'正在尋找一個沒有包入DOM的事件

0

沒有$(document).ready(),第一實際上並沒有必然$('.topCart')

第二個示例,使用準備好的文檔給出了將函數綁定到懸停事件的時刻或時間。