今天在開發的過程中遇到了一個有趣的多節點操作的狀況,拿出來和大家分享一下,同時比較一下Mootools和jquery的差異
因為之前用jquery,現在轉到mootools之后慣性思維一直不好改,結果今天發現了這個問題,如果把Mootools的語句用jquery的 寫法來做是無論如何都沒辦法達到預期效果的,所以必須要把多個節點使用Array的each方法給拆解出來才可以實現.由此可見mootools更接近 js原型開發.
我們看一下下邊的代碼:
//Mootools的做法:
function Global_HidShow_Other(i){
i=$(i);
if(i.checked){
$sel=$('srh1').getElements('li.float input');
Array.each($sel,function($sel_,index){
$sel_.checked=false;
$sel_.disabled=true;
});
}
}
//Jquery的做法
$(document).ready(function(){
$sel=$('#srh1 li.float input');
$sel.checked=false;//我記得以前在寫jquery的時候直接操作checked和disabled似乎是有問題的,時間很久了,記不太清了.
$sel.disabled=true;
});
其實這應該算是很基礎的東西了,只不過應該歸功于jquery慣壞了我的習慣罷了.
Global_HidShow_Other這個函數我并沒有綁定事件,而是直接寫入到dom節點上了<font onclick="Global_HidShow_Other(this)">,這樣就不需要每次打開頁面的時候不管是否能用得到此功能都要綁定事件,資源能節省就節省吧.
我在調用的時候傳遞了this進去,為了兼容IE,所以我在使用i參數之前先i=$(i);以免IE報錯.
這樣的用法是不是和js原型開發非常相似.似乎一切都歸于本源了.