1 亂用選擇器
坑人指數:200
#JQuery選擇器呼叫代價很大,重複呼叫效率更低。應採用快取物件的方法或採用鍊式呼叫的方式。
//错误的写法 $("#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 全域選擇效率低
坑人指數:100
盡量使用上下文(context)查找,避免全域選擇的使用。全域選擇器會進行整個Doc的查找,效率很低。
//错误的写法 $(".active").method(); //正确的写法 var ul = $("#myList"); $(".active",ul).method();
3 複製匿名函數
#坑人指數:50
避免多次複製匿名函數的寫法,將匿名函數分離出來,供其它物件多次呼叫。
//错误的写法 $('#myp').click( function(){ //一些操作 }); //正确的写法 function pClickFn (){ //一些操作 } $('#myp').click( pClickFn );
4 誤用ajax的complete
坑人指數:30
當用ajax進行資料要求時,避免使用complete回呼方法,而應該使用success方法。 complete回呼在請求成功或失敗時都會觸發。
//错误的写法 $.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 鍊式呼叫的誤用
#坑人指數:20
採用鍊式呼叫的方式會使物件在漸變未完成之前就被移除,也就是remove方法會在fadeOut方法完成前呼叫。當需要第一個方法完成之後,再執行第二個方法,請使用回調,即第二種方式。
//错误的写法 $("#myp").click(function(e) { $(this).fadeOut("slow").remove(); }); //正确的写法 $("myp").click(function(e){ $(this).fadeOut("slow", function(){ $(this).remove(); }); });
6 事件多次綁定
坑人指數:20
如果你綁定(bind)同一事件多次,回應就會執行多次。為避免多次執行,請先做事件解綁再重新綁定。
//避免响应多次执行 $("myp").unbind("click").bind("click");
7 錯誤使用this指示符
坑人指數:10
this指示符存在於一定的上下文中的,當上下文變化時this指向不同的對象。如果還想呼叫原始上下文中的this,則需要在原始上下文中快取原始this物件( $that = $(this) )。
//错误的写法 $( "#myList").click( function() { $(this).method(); $("#myList li").each( function() { //this并不指向myList $(this).method2(); }) });
#
以上是JQuery的那些坑,JQuery坑人指數排行的詳細內容。更多資訊請關注PHP中文網其他相關文章!

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版