2014-07-24 31 views
0

不工作我有一個HTML文件,如下所示:的jQuery( '#div_id')顯示()在Firefox

<html> 
    <head><title>jQuery beginner</title></head> 
    <body> 
     <div id='my_div'>Some random generated value</div> 
     <button id="submit_button">submit</button> 
    </body> 
</html> 

我想保持<div id="my_div">元素隱藏,直到被點擊<button id="submit_button">

所以在我Javascript文件我寫了下面的代碼:

$(document).ready(function() { 
    $('#my_div').hide(); 
}); 

$('#submit_button').click(function() { 
    $('#my_div').show(); 
}); 

這個腳本和HTML是谷歌瀏覽器工作正常和令人驚訝地在Internet Explorer 9中也適用,但在Firefox不起作用。

我讀了SO其他一些問題,並試圖替代像

  1. $('#my_div').css('display','block')
  2. $('#my_div').css('display','inline-block')
  3. $('#my_div').css('display','block-table')
  4. $('#my_div').attr('style','display:block')

但沒有上述溶液的是在Firefox中工作。

有沒有解決這個問題的方法?

我觀察到的另外一件事是,如果我在頁面加載時保持div可見並且稍後使用按鈕單擊事件切換它的顯示,它就可以工作。

任何線索爲什麼這隻發生在Firefox?

回答

2

但是你錯過嘗試這種:)

也就是說,包裹event binding代碼到doc ready handler

$(document).ready(function() { 
    $('#my_div').hide(); 
    $('#submit_button').click(function() { 
     $('#my_div').show(); 
    }); 
}); 
+0

哦,我需要把按鈕單擊事件處理程序中的$(document)。就緒()函數? – Shekhar

+1

@Shekhar是的,因爲匹配該選擇器的元素在註冊該事件時將不可用。 :) –

+0

哦,好的。我會馬上嘗試:) – Shekhar

0

包裝你的代碼準備好處理程序中:

$(document).ready(function() { 
    $('#my_div').hide(); 

$('#submit_button').click(function() { 
    $('#my_div').show(); 
}); 
}); 
+2

@dowvoter請仔細解釋... –

+0

@downvoter,C-link是正確的只有downvoting不幫助任何人,請解釋downvote。 – Shekhar