[英]using jQuery() for $(document).ready()?
我個人更喜歡第一種語法
jQuery()
是否安全尊重常用的:
$(document).ready()
對於其他選擇器,我將使用$('#id').
我只是要求第一個.ready
jQuery
和$
是可以互換的(來自jQuery源代碼):
window.jQuery = window.$ = jQuery
但要小心其他可能使用$
庫。 至於使用ready()
:
以下所有三種語法都是等效的:
$(文件)。就緒(句柄)
$()。ready(處理程序)(不建議這樣做)
$(句柄)
來自ready() API。
加載jquery腳本后立即添加以下代碼:
(function($){
$.fn.oldReady = $.fn.ready;
$.fn.ready = function(fn){
return $.fn.oldReady( function(){ try{ if(fn) fn.apply($,arguments); } catch(e){}} );
}
})(jQuery);
使用jQuery
更“安全”,因為它不會與Mootools等其他框架發生沖突。 如果你只使用jQuery,使用$
沒有任何害處。
如果您只使用jQuery框架,那么我將使用$
語法,特別是ready事件處理程序的簡寫版本更清晰。 這只是個人偏好 - 它對我來說很明顯它的作用,而不是那么冗長。 您可以選擇任何其他表格。
$(function() {
});
如果你有其他框架,那么你應該按照說明在noConflict
模式下設置jQuery: http : noConflict
來自引用頁面的代碼示例:
<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) { // or jQuery(function($) {
// Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>
如果你正在構建自己的插件而你無法確定jQuery是當時唯一使用的框架,我會在內部使用jQuery()
或者至少在你的范圍內明確地為jQuery對象賦值,這樣你就知道了你正在做什么。
兩個名稱$
和jQuery
是同義詞。 jQuery
更明確; 如果您使用其他框架,則可能會覆蓋$
。
如果將一個函數作為第一個參數傳遞給jQuery
函數(或者顯然是$
),那么它的執行就像是對jQuery(document).ready
的調用一樣。 所以是的,它完全一樣。
實際上,所有這些在功能上都是等價的(前提是你沒有任何其他東西與$
):
$(document).ready(function() {});
jQuery(document).ready(function() {});
$(function() {});
jQuery(function() {});
這完全取決於您使用的環境和風格。
我個人的偏好是使用顯式的$(document).ready
調用(#1):顯然這是在DOM准備就緒時運行的代碼。 您的偏好(#4)的主要優點是它清楚地表明代碼是jQuery,這可能對將來閱讀您的代碼的人有用。
jQuery文檔說他們是一樣的。
你的問題真的是二合一的。 有幾種方法可以連接ready
事件,但這四種變化與問題相關:
jQuery(function(){ ... });
jQuery(document).ready(function(){ ... });
$(function(){ ... });
$(document).ready(function(){ ... });
$
identifier是jQuery
標識符的別名。 使用noConflict
方法,如果$
別名與任何其他庫沖突並且只使用jQuery標識符(甚至釋放所有標識符並指定自己的標識符),則可以釋放$
alias。
使用jQuery對象本身來掛接ready
事件是一種常用的簡寫,但僅僅通過查看代碼它的作用就不那么清楚了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.