一些問題
JQuery是一個javascript類庫,那類庫是什麼,庫和框架的區別有是什麼呢?
- 庫的英語爲Library,是將代碼集合成的一個產品,供程序員調用。面向對象的代碼組織形式而成的庫也叫類庫。面向過程的代碼組織形式而成的庫也叫函數庫。在函數庫中的可直接使用的函數叫庫函數。開發者在使用庫的時候,只需要使用庫的一部分類或函數,然後繼續實現自己的功能。
- 框架則是爲解決一個(或一類)問題而開發的產品,框架用戶一般只需要使用框架提供的類或函數,即可實現全部功能。可以說框架是庫的升級版。開發者在使用框架的時候,必須使用這個框架的全部代碼
jquery 能做什麼?
- 簡單快捷的獲取DOM元素
- 響應用戶的事件
- 動態的修改頁面的樣式
- 動態的修改DOM的內容
- 添加動畫或者特效效果
- 統一Ajax操作
jquery 對象和 DOM 原生對象有什麼區別?如何轉化?
- DOM原生對象:通過原生js獲取的dom節點是DOM元素;只能使用DOM元素的屬性和方法。
- jquery對象:通過jquery選擇器選擇的元素是jquery對象;只能使用jquery的屬性和方法
- 使用
$(dom)
函數可以將dom對象轉化爲jquery對象。 - jquery對象是類數組對象,使用索引想去數組的第幾項就能將第幾項轉化爲dom對象。
jquery中如何綁定事件?bind、unbind、delegate、live、on、off都有什麼作用?推薦使用哪種?使用on綁定事件使用事件代理的寫法?
bind()
:最簡單的綁定方法,JQuery掃描DOM中所有的JQuery選擇器選擇的元素,並將函數綁定到每個元素的事件上,例子:
$('a').bind('click', function() {
alert("That tickles!")
});
live()
:JQuery把alert函數綁定到$(document)元素上,並使用’click’和’a’作爲參數。任何時候只要有事件冒泡到document節點上,它就查看該事件是否是一個click事件,以及該事件的目標元素與a
這一CSS選擇器是否匹配,如果都是的話,則執行函數,例子如下:
$('a').live('click', function() {
alert("That tickles!")
});
delegate()
:事件代理。JQuery掃描文檔查找$(‘#container’)
,並使用click事件和a
這一CSS選擇器作爲參數把alert()
綁定到$(‘#container’)
上。任何時候只要有事件冒泡到$(‘#container’)
上,它就查看該事件是否是click事件,以及該事件的目標元素是否與CCS選擇器相匹配。如果兩種檢查的結果都爲真的話,它就執行函數。on()
:推薦使用的方法,on事件綁定把上面三種方法統一了,用起來更方便。用法例子:
// Bind
$( "#members li a" ).on( "click", function( e ) {} );
$( "#members li a" ).bind( "click", function( e ) {} );
// Delegate
$( "#members" ).on( "click", "li a", function( e ) {} ); //注意子元素參數位置
$( "#members" ).delegate( "li a", "click", function( e ) {} );
jquery 如何展示/隱藏元素?
$(selector).hide(speed,callback); //隱藏元素
$(selector).show(speed,callback); //展示元素
$(selector).toggle(speed,callback); //切換元素的可見狀態,如果被選元素可見,則隱藏這些元素,如果被選元素隱藏,則顯示這些元素。
- 可選的
speed
參數規定隱藏/顯示的速度,可以使用這些值:"slow"
、"fast"
或毫秒。 - 可選的
callback
參數是隱藏或顯示完成後所執行的函數名稱。
jquery 動畫如何使用?
jQuery animate()
方法用於創建自定義動畫。
$(selector).animate({params},speed,callback);
- 必須的
params
參數定義形成動畫的CSS屬性。 - 可選的
speed
參數規定效果的時長,可以使用這些值:"show"
、"fast"
或毫秒 - 可選的
callback
參數是隱藏或顯示完成後所執行的函數名稱。
如何設置和獲取元素內部 HTML 內容?如何設置和獲取元素內部文本?
html()
設置或返回所選元素的內容(包括 HTML 標記)text()
設置或返回所選元素的文本內容
如何設置和獲取表單用戶輸入或者選擇的內容?如何設置和獲取元素屬性?
val()
設置或返回表單字段的值attr()
設置或返回元素的屬性
一些例子
下面是一些用JQuery實現的我們再網頁上常用的部件
下拉菜單,右側出現、代碼
tab切換、代碼
注意:
- 奢侈品2的a標籤中的href
屬性值設爲了#頁面會跳回頂部,將其設爲javascript:void(0)
就不會出現這種情況了。
- 頁面的默認錨點再頁面頂部,當herf="#"
時,頁面會跳轉到錨點,javascript:void(0)
的作用是將連接變爲一個死鏈接,既不會跳轉也不會回到頂部。
點擊加載更多、代碼