2012-08-11 136 views
0

好的,這很奇怪。在我的頁面上,無論何時在元素上調用.hide()或.show(),都不會發生任何事情,除非我單擊頁面上的某處(其他任何地方)。行爲沒有發生得更早,我不知道我做了什麼導致它爬行。jQuery .hide()和.show()在點擊頁面之前不工作

我使用jQuery 1.7.2和引導程序作爲我的css框架(有很多修改)。這種行爲發生在Chrome,Firefox和Safari(在OSX上)。我已經減少了JavaScript,但只有jQuery和我的.hide()調用,它仍然會發生。控制檯中沒有顯示錯誤消息。

我甚至不知道如何去調試這個問題。我發現它絕對怪異,谷歌搜索沒有透露任何東西。有什麼我可以用開發者工具或類似的工具來發現爲什麼.hide()不能按預期工作?

我正在使用coffeescript。這是咖啡的腳本;

$('#recipient_type').blur -> 
    if $(this).val() == 'Other' 
    $('#recipient-details').show() 
    else 
    $('#recipient-details').hide() 

這是它編譯的javascript;

$('#recipient_type').blur(function() { 
     if ($(this).val() === 'Other') { 
     return $('#recipient-details').show(); 
     } else { 
     return $('#recipient-details').hide(); 
     } 
    }); 

但這種現象不僅發生在我的代碼中。例如,bootstrap-alert.js警報解除腳本給我帶來了同樣的問題。

+3

發佈您的代碼。 – darma 2012-08-11 11:54:51

+1

是您的顯示/隱藏代碼,運行時響應頁面上的某些用戶操作,如更改文本框的值 – 2012-08-11 12:02:38

+0

@Parv - 是的,它是 – brad 2012-08-11 12:06:00

回答

1

您可以在執行隱藏的代碼上設置斷點以查看它是否正在執行。

這是一個模糊,所以根據定義,它不會優於,直到你離開活動對象。