RELATEED CONSULTING
相關咨詢
選擇下列産品馬上(shàng)在線溝通(tōng)
服務時(shí)間(jiān):9:00-18:00
你(nǐ)可(kě)能遇到了下面的問題
關閉右側工具欄
14個(gè)有(yǒu)用的jQuery技(jì)巧
  • 作(zuò)者:admin
  • 發表時(shí)間(jiān):2013-07-02 14:17:16
  • 來(lái)源:未知

本文收集整理(lǐ)了14個(gè)很(hěn)有(yǒu)用的jQuery技(jì)巧,與大(dà)家(jiā)分享。1.通(tōng)過方法返回Jquery對象實例。用 var someDiv = $(‘#someDiv’).hide(); 代替 var someDiv = $(‘#someDiv’); someDiv.hide();

1.通(tōng)過方法返回Jquery對象實例

用 var someDiv = $(‘#someDiv’).hide(); 代替 var someDiv = $(‘#someDiv’); someDiv.hide();

2.使用find來(lái)查找

用 $(’#someDiv’).find(’p.someClass’).hide(); 代替 $(’#someDiv p.someClass’).hide();因為(wèi)可(kě)以不必觸發Jquery的Sizzle引擎,同時(shí)在寫選擇符的時(shí)候盡量讓您的選擇符簡單同時(shí)優化最右邊的選擇符

3.不要濫用$(this)

用 $(’#someAnchor’).click(function() { alert( this.id ); }); 代替 $(’#someAnchor’).click(function() {alert($(this).attr(’id’));});

4.ready的簡寫形式

用 $(function() { }); 代替 $(document).ready(function() {});

5.讓你(nǐ)的代碼安全

方法1(使用noConflict)

var j = jQuery.noConflict();
j(’#someDiv’).hide();
// The line below will reference some other library’s $ function.
$(’someDiv’).style.display = ‘none’;

方法2(傳入參數(shù)Jquery)

(function($) {
// Within this function, $ will always refer to jQuery
})(jQuery);

方法3(通(tōng)過ready方法)

jQuery(document).ready(function($) {
// $ refers to jQuery
});

6.簡化代碼

用each代替for,使用數(shù)組保存臨時(shí)變量,使用document fragment,這其實和(hé)寫原生(shēng)的Javascript需要注意的一樣。

7.使用Ajax的方法

Jquery提供了get getJSON post ajax這些(xiē)有(yǒu)用的ajax方法。

8.訪問原生(shēng)的屬性和(hé)方法

比如獲取元素id的方法有(yǒu)

// OPTION 1 – Use jQuery
var id = $(’#someAnchor’).attr(’id’);
// OPTION 2 – Access the DOM element
var id = $(’#someAnchor’)[0].id;
// OPTION 3 – Use jQuery’s get method
var id = $(’#someAnchor’).get(0).id;
// OPTION 3b – Don’t pass an index to get
anchorsArray = $(’.someAnchors’).get();
var thirdId = anchorsArray[2].id;

9.使用PHP來(lái)檢查Ajax請(qǐng)求

通(tōng)過使用xhr.setRequestHeader(”X-Requested-With”, “XMLHttpRequest”); 服務器(qì)端如PHP就可(kě)以通(tōng)過

function isXhr() {
   return $_SERVER['HTTP_X_REQUESTED_WITH'] === ‘XMLHttpRequest’;
}

來(lái)檢查是不是Ajax請(qǐng)求,在一些(xiē)禁用Javascript的情況下可(kě)能會(huì)用到。

10.Jquery和(hé)$的關系

在Jquery代碼的最下面,可(kě)以看到下面的代碼

window.jQuery = window.$ = jQuery; $其實就是Jquery的一個(gè)shortcut

11.條件加載Jquery


如果CDN沒有(yǒu)下載到Jquery,則從本地讀取。

12.Jquery Filters

$(’p:first’).data(’info’, ‘value’); // populates $’s data object to have something to work with
$.extend(
jQuery.expr[":"], {
block: function(elem) {
return $(elem).css(”display”) === “block”;
},
hasData : function(elem) {
return !$.isEmptyObject( $(elem).data() );
}
}
);
$(”p:hasData”).text(”has data”); // grabs paras that have data attached
$(”p:block”).text(”are block level”); // grabs only paragraphs that have a display of “block”

注:$.expr[":"]等價于$.expr.filters。

13.hover方法

$(’#someElement’).hover(function() {
//在這裏可(kě)以使用toggle方法來(lái)實現滑過和(hé)滑出的效果
});

14.傳入屬性對象

當創建一個(gè)元素的時(shí)候,Jquery1.4可(kě)以傳入一個(gè)屬性對象

$(’’, {
  id : ’someId’,
  className : ’someClass’,
  href : ’somePath.html’
});

甚至是Jquery指定的屬性或事件如text, click。