JSLite - 核心方法
如有疑問歡迎到這些地方交流,歡迎加入JSLite.io組織團體共同開發!
$()
選擇器使用的是瀏覽器自帶的方法的 document.querySelectorAll 接口,支援標準的 CSS 選擇器,沒有使用jQuery作者John Resig開發的DOM選擇器引擎(Dom Selector Engine) Sizzle 。 目前 IE8/9及Firefox/Chrome/Safari/Opera 的最新版本已經支援 querySelectorAll 。
$(selector) //⇒ 選擇節點
$("") //⇒ 產生節點
$("htmlString") //⇒ 產生
JSLite(function($){ .. . }) //⇒ 相當於ready
$(selector) //⇒ 選擇節點
$("") //⇒ 產生節點
$("htmlString") //⇒ 產生
JSLite(function($){ .. . }) //⇒ 相當於ready
$("#box") //⇒ 返回节点数组 //⇒ [<div>…</div>] $("<div></div>") //⇒ 生成div节点 //JSLite(func) 相当于ready JSLite(function($){ console.log("在节点加载完成之后执行") }) //$(func) 相当于ready $(function($){ console.log("在节点加载完成之后执行") })
JSLite()
與
$()
相同。
noConflict
noConflict()
方法讓渡變數 $ 的 JSLite
控制權,解決兩個函式庫之間的$衝突。
此方法釋放 JSLite
對 $
變數的控制。
此方法也可用於為 JSLite
變數規定新的自訂名稱。
常規
$.noConflict(); JSLite(document).ready(function($) { // 使用 JSLite $ 的代码 }); // 使用其他库的 $ 的代码
映射回原始的物件
將$
引用的物件映射回原始的物件:
JSLite.noConflict(); JSLite("div p").hide(); // 使用 JSLite $("content").style.display = "none"; // 使用其他库的 $()
恢復使用別名
恢復使用別名$
,然後建立並執行一個函數,在這個函數的作用域中仍然將$
作為JSLite
的別名來使用。在這個函數中,原來的 $
物件是無效的。這個函數對於大多數不依賴其他函式庫的插件都很有效:
JSLite.noConflict(); (function($) { $(function() { // 使用 $ 作为 JSLite 别名的代码 }); })(JSLite); ... // 其他用 $ 作为别名的库的代码
簡寫
#可以將JSLite.noConflict()
與簡寫的ready
結合,使程式碼更緊湊
JSLite.noConflict()(function(){ // 使用 JSLite 的代码 console.log($("div")) });
建立別名
建立一個新的別名用以在接下來的庫中使用JSLite
物件:
var j = JSLite.noConflict(); j("#box").hide(); // 基于 JSLite 的代码 $("content").style.display = "none"; // 基于其他库的 $() 代码
新的命名空間
完全將JSLite
移到一個新的命名空間:
var dom = {}; dom.jslite = JSLite.noConflict(true);
結果:
dom.jslite("div p").hide(); // 新 JSLite 的代码 $("content").style.display = "none"; // 另一个库 $() 的代码 JSLite("div > p").hide(); // 另一个版本 JSLite 的代码