成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JQuery坑,說說哪些大家都踩過的坑

habren / 337人閱讀

摘要:回調(diào)在請求成功或失敗都會(huì)觸發(fā)。為避免多次執(zhí)行,請先做事件解綁再重新綁定。避免響應(yīng)多次執(zhí)行錯(cuò)誤使用指示符坑人指數(shù)指示符存在于一定的上下文中的,當(dāng)上下文變化時(shí)指向不同的對(duì)象。

1 亂用選擇器 坑人指數(shù):200

JQuery選擇器調(diào)用代價(jià)很大,反復(fù)調(diào)用效率更低。應(yīng)采用緩存對(duì)象的方法或采用鏈?zhǔn)秸{(diào)用的方式。

//錯(cuò)誤的寫法
$("#button").click(function(){
    $("#list li").addClass("strong");
    $("#list li").css("color", "red");
});
//正確的寫法
$("#button").click(function(){
    $lis = $("#list li");
    $lis.addClass("strong");
    $lis.css("color", "red");
});
//更好的寫法
$("#button").click(function(){
    $("#list li").addClass("strong").css("color", "red");
});
2 全局選擇效率低 坑人指數(shù):100

盡量使用上下文(context)查找,避免全局選擇的使用。全局選擇器會(huì)進(jìn)行整個(gè)Doc的查找,效率很低。

//錯(cuò)誤的寫法
$(".active").method();
//正確的寫法
var ul = $("#myList");
$(".active",ul).method();
3 復(fù)制匿名函數(shù) 坑人指數(shù):50

避免多次復(fù)制匿名函數(shù)的寫法,將匿名函數(shù)分離出來,供其它對(duì)象多次調(diào)用。

//錯(cuò)誤的寫法
$("#myDiv").click( function(){
   //一些操作
});
//正確的寫法
function divClickFn(){
   //一些操作   
}
$("#myDiv").click(function(){
    divClickFn();
});
4 誤用ajax的complete 坑人指數(shù):30

當(dāng)用ajax進(jìn)行數(shù)據(jù)請求時(shí),避免使用complete回調(diào)方法,而應(yīng)該使用success方法。complete回調(diào)在請求成功或失敗都會(huì)觸發(fā)。

//錯(cuò)誤的寫法
$.ajax({
  url: "http://tools.42du.cn/jsonp/student/all",
}).complete(function( data ) {
    //一些操作  
});
//正確的寫法
$.ajax({
  url: "http://tools.42du.cn/jsonp/student/all",
}).success(function( data ) {
    //一些操作  
});
5 鏈?zhǔn)秸{(diào)用的誤用 坑人指數(shù):20

采用鏈?zhǔn)秸{(diào)用的方式會(huì)使對(duì)象在漸變未完成之前就被移除,即remove方法會(huì)在fadeOut方法完成之前調(diào)用。當(dāng)需要第一方法完成之后,再執(zhí)行第二個(gè)方法,請使用回調(diào),即第二種方式。

//錯(cuò)誤的寫法
$("#myDiv").click(function(e) {
  $(this).fadeOut("slow").remove();
});
//正確的寫法
$("myDiv").click(function(e){
  $(this).fadeOut("slow", function(){
    $(this).remove();
  });
});
6 事件多次綁定 坑人指數(shù):20

如果你綁定(bind)同一事件多次,響應(yīng)就會(huì)被執(zhí)行多次。為避免多次執(zhí)行,請先做事件解綁再重新綁定。

//避免響應(yīng)多次執(zhí)行
$("myDiv").unbind("click").bind("click");
7 錯(cuò)誤使用this指示符 坑人指數(shù):10

this指示符存在于一定的上下文中的,當(dāng)上下文變化時(shí)this指向不同的對(duì)象。如果還想調(diào)用原上下文中的this,則需要在原上下文中緩存原this對(duì)象($that = $(this))。

//錯(cuò)誤的寫法
$( "#myList").click( function() {
   $(this).method(); 
   $("#myList li").each( function() {
      //this并不指向myList
      $(this).method2(); 
   })
});

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/83375.html

相關(guān)文章

  • 又被事件冒泡了一把,這次要徹底弄懂瀏覽器的事件流

    摘要:事件冒泡一個(gè)簡單,但是坑了我無數(shù)回的知識(shí)點(diǎn)與的交互通過事件來實(shí)現(xiàn)。而瀏覽器的事件流是一個(gè)非常重要的概念。不去討論那些古老的瀏覽器有事件捕獲與事件冒泡的爭議,只需要知道在中規(guī)定的事件流包括了三個(gè)部分,事件捕獲階段處于目標(biāo)階段事件冒泡階段。 打算封裝一個(gè)彈窗組件,做的時(shí)候忘記了考慮事件冒泡的因素,結(jié)果被坑得不要不要的。為了解決自己的問題,去查閱了不少資料,把事件流相關(guān)的知識(shí)都給總結(jié)一下。 ...

    Ocean 評(píng)論0 收藏0
  • 又被事件冒泡了一把,這次要徹底弄懂瀏覽器的事件流

    摘要:事件冒泡一個(gè)簡單,但是坑了我無數(shù)回的知識(shí)點(diǎn)與的交互通過事件來實(shí)現(xiàn)。而瀏覽器的事件流是一個(gè)非常重要的概念。不去討論那些古老的瀏覽器有事件捕獲與事件冒泡的爭議,只需要知道在中規(guī)定的事件流包括了三個(gè)部分,事件捕獲階段處于目標(biāo)階段事件冒泡階段。 打算封裝一個(gè)彈窗組件,做的時(shí)候忘記了考慮事件冒泡的因素,結(jié)果被坑得不要不要的。為了解決自己的問題,去查閱了不少資料,把事件流相關(guān)的知識(shí)都給總結(jié)一下。 ...

    TIGERB 評(píng)論0 收藏0
  • 個(gè)人分享--web前端學(xué)習(xí)資源分享

    摘要:前言月份開始出沒社區(qū),現(xiàn)在差不多月了,按照工作的說法,就是差不多過了三個(gè)月的試用期,準(zhǔn)備轉(zhuǎn)正了一般來說,差不多到了轉(zhuǎn)正的時(shí)候,會(huì)進(jìn)行總結(jié)或者分享會(huì)議那么今天我就把看過的一些學(xué)習(xí)資源主要是博客,博文推薦分享給大家。 1.前言 6月份開始出沒社區(qū),現(xiàn)在差不多9月了,按照工作的說法,就是差不多過了三個(gè)月的試用期,準(zhǔn)備轉(zhuǎn)正了!一般來說,差不多到了轉(zhuǎn)正的時(shí)候,會(huì)進(jìn)行總結(jié)或者分享會(huì)議!那么今天我就...

    sherlock221 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<