2011-03-21 27 views
27

我是一名JS程序員,我一直在嘗試jQuery,但遇到了一些令人費解的方面。爲什麼人們使用jQuery進行基本操作?

我覺得人們使用jQuery遠不止於必要。我真的只想知道爲什麼選擇jQuery可能比只使用純JS更好。

我知道它是有道理的,如動畫和淡入淡出webfx但對於像添加事件偵聽器,它似乎只是作爲簡單易用

obj = document.getElementByID(_ID_); 
obj.addEventListener("mousedown"...); 

這方面的一個例子是今天早些時候我在計算器上找到了答案關於爲突出顯示的文本執行操作。 Get the Highlighted/Selected text

在答案鏈接的例子在http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html

的人使用綁定函數到文檔中。爲什麼使用綁定而不是addEventListener。還使用jQuery一切都需要被列入。就緒()方法,這是怎麼優於(或爲什麼選過來)

document.addEventListener('load', function() { ... }, false); 

有我見過的jQuery使用的困惑我其他時間,我希望你傢伙可以爲我照亮一些光。

+1

純粹的jquery不好。這是關於性能與開發時間的關係。只有在真正需要時才使用jquery,而且性能無關緊要。我見過人們使用$(this).attr('id')而不是this.id.純JavaScript在性能上領先,但對瀏覽器兼容性的支持較少。 – 2012-11-14 16:42:03

回答

49

人們使用jQuery,因爲它更簡單,更輕鬆,更強大,並且因爲它可以幫助他們忘掉IE。

爲了回答您的具體問題:

  1. 否則,你需要調用attachEvent的IE瀏覽器。
    此外,jQuery事件處理語法更簡單,並支持實時事件。

  2. jQuery並不要求你把所有東西都放在ready句柄中;將代碼移動到頁面底部並立即執行它實際上會更好。
    document.addEventListener('load', ...)不同,jQuery的ready事件不會等待圖像加載。
    此外,它在IE中工作,即使文檔已經加載,它仍然會運行你的代碼。

+0

$('window')。ready()允許圖像加載...我認爲 – austinbv 2011-04-14 20:07:09

+0

@zobgib:No;那是'.load'。 http://api.jquery.com/load-event – SLaks 2011-04-14 20:39:00

27

好,on()是非常有用的,因爲addEventListener()只從Internet Explorer 9日開始的支持。

對於例如mouseentermouseleave事件:這些只支持IE(到目前爲止),jQuery在其他瀏覽器中模擬它們。

+1

對於那些鼠標事件 – StuperUser 2011-03-21 16:40:20

14

對我來說,最大的原因是跨瀏覽器兼容性,尤其是在事件處理方面。

6

jquery背後的想法是「少寫,多做」。

通過簡單的例子,寫入代碼量的差異很小,但是隨着您開始編寫更復雜的東西,jquery的強大功能變得很明顯。

jQuery中還有很多跨瀏覽器的東西,這意味着您不必擔心瀏覽器特定的代碼。

2

我對jQuery的平臺無關性比對單純的JavaScript更有信心。出於這個原因,我很想盡可能地使用jQuery。我認爲jQuery是一個很好且足夠穩定的平臺,可以抽象出一些瀏覽器特定的複雜問題。

1

因爲它是交叉兼容的並且得到很好的支持(想想XHR請求)......但是在某些項目中,由於缺乏「assets」方法,我最好使用MooTools而不是JQuery。

3

因爲jQuery開發人員比我更聰明,並且經常會實現一個更高效的算法來完成我想要做的事情。

相關問題