2012-10-24 79 views
1

我有以下QUnit測試:爲什麼mouseover或mouseout事件不會從測試中觸發?

test 'can view saved status and undo if needed', -> 
    save_link = $('.save-link') 
    my_profile_div = $('.searchbar .span5') 
    undo_save = $('#undo-save') 

    my_profile_div.mouseover() 
    equal(undo_save.css('visibility'), 'hidden') 
    my_profile_div.mouseout() 

    save_link.click() 

    my_profile_div.mouseover() 
    equal(undo_save.css('visibility'), 'visible') 
    my_profile_div.mouseout() 
    equal(undo_save.css('visibility'), 'hidden') 

它點擊一個鏈接,那麼預計一些懸停行爲是存在該元素my_profile_div。不幸的是,mouseover和mouseout事件不會從測試中觸發。我用這個實現的時候沒有得到警報:

$('.searchbar .span5').mouseover -> 
    alert('mouseover') 

$('.searchbar .span5').mouseout -> 
    alert('mouseout') 

在我得到警報的瀏覽器,而不是當我運行上面的測試,這讓我覺得我沒有正確觸發的事件。我也試過trigger('mouseover')無濟於事。

感謝您百忙之中閱讀此,人的時間。我非常感謝你的幫助。

注:測試是所需的行爲。實施只是爲了確保測試正在做它應該做的。

回答

-1

我寧願使用觸發器來觸發事件。

$('targetElement').trigger('eventName'); 
+0

我也試過,但我仍然遇到同樣的問題。 – Lyudmil

+0

好的,你的實際錯誤是什麼?另一件事。我認爲你的測試代碼是在$(document).ready或按鈕點擊後調用的函數裏面? –

+0

我沒有收到錯誤消息。正如你所看到的,如果mouseover/mouseout事件觸發,你將不得不看到兩個警報,當我運行我的測試時不會發生這種警報,但是當我將腳本加載到網頁時會發生。 我正在使用QUnit,所以測試代碼是一個網頁,測試是從

相關問題