有2種方法:

創(chuàng)新互聯(lián)公司是專業(yè)的沭陽網(wǎng)站建設(shè)公司,沭陽接單;提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行沭陽網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
最簡單的方法就是直接在標(biāo)簽中寫onclick="",但是這樣寫其實是有點low的,
第二種方式是通過給類名綁定一個事件。
p?id="pLabel"新加一條/p
ul?id="ulLabel"
li?class="liLabel"aaa1/li
li?class="liLabel"aaa2/li
li?class="liLabel"aaa3/li
/ul
script?type="text/javascript"
$("#pLabel").click(function(){
$("#ulLabel").append('li?class="liLabel"aaaQ/li');?//動態(tài)像ul的末尾追加一個新元素
});
/script
方法一:使用live
live()函數(shù)會給被選的元素綁定上一個或者多個事件處理程序,并且規(guī)定當(dāng)這些事件發(fā)生時運行的函數(shù)。通過live()函數(shù)適用于匹配選擇器的當(dāng)前及未來的元素。比如,通過腳本動態(tài)創(chuàng)建的元素。
$('.liLabel').live('click',?function(){
alert('OK');
});
方法二:使用on
可以通過on方法綁定事件,可以綁定到它的父級或者body中,實現(xiàn)如下:
$("#ulLabel").on('click','.liLabel',function(){
alert('OK')
});
或者:
$("body").on('click','.liLabel',function(){
alert('OK')
});
注意綁定的事件,需要綁定在父元素。
在頁面加載結(jié)束后,瀏覽器會通過js為dom元素添加事件。原生的js中使用 window.onload 方法;在JQ中使用$(document).ready()。這個方法在dom載入就緒時對其進(jìn)行操縱并調(diào)用執(zhí)行它所綁定的函數(shù)。
那么它和window.onload有何不同呢?
window.onload是在網(wǎng)頁中所有元素 加上所有資源 ++完全加++載到瀏覽器后才執(zhí)行。
而$(document).ready()中綁定的事件是在 dom完全就緒 時就可以被調(diào)用,此時對于jQuery來說都是可以被訪問的(關(guān)聯(lián)的資源可能并沒有被加載完畢)。
舉個例子來說,在$(document).ready()中定義了圖片的寬高,但由于此時圖片還沒有被加載完畢,此時的寬高不會生效。要解決這個問題可以使用jQuery中的 load ()方法。
load()方法會在元素的onload事件中綁定一個處理函數(shù),如果該處理函數(shù)綁定給window對象,則會在所有資源加載完畢后觸發(fā),如果load綁定在元素上則會在該元素加載完畢后觸發(fā)。
既然window.onload比較完備為什么還要用jQuery中的$(document).ready()呢?
window.onload事件 每次只能保存對一個函數(shù)的引用 ,他會覆蓋掉之前的函數(shù),所以不能再現(xiàn)有行為上添加新的行為。如果引用了多個js文件,每個都需要window.onload方法就導(dǎo)致編碼復(fù)雜。
使用$(document).ready()方法能夠很好地解決這種問題,每次調(diào)用$document.ready()方法都會在現(xiàn)有行為上追加新的行為,這些行為會根據(jù)注冊順序依次執(zhí)行。
jquery中添加事件
$(item).click(function(){}) //點擊事件
$(item).hover(function(){}) //鼠標(biāo)經(jīng)過事件
$(item).mousemove(function(){}) //鼠標(biāo)移動事件
但是給動態(tài)創(chuàng)建的元素添加事件就得使用on
$(document).on("click","item",function(){})
可以使用:$("#but").removeAttr("class");和$("#but").attr("class","but_test");來對標(biāo)簽進(jìn)行元素的添加和刪除。
為了直觀性的看到結(jié)果,首先在css樣式中,針對class選擇該元素,之后添加相應(yīng)的樣式。
接下來,就給該button按鈕添加一個點擊事件,讓它能過自由切換。
對該點擊事件添加js函數(shù)。
運行后的結(jié)果為:
拓展資料:
jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之后又一個優(yōu)秀的JavaScript代碼庫(或JavaScript框架)。它封裝JavaScript常用的功能代碼,提供一種簡便的JavaScript設(shè)計模式,優(yōu)化HTML文檔操作、事件處理、動畫設(shè)計和Ajax交互。
大多數(shù)情況下我們使用左鍵來進(jìn)行頁面交互,而右鍵大部分對于開發(fā)者來說是審查元素的,有的時候我們也要自定義鼠標(biāo)右鍵點擊行為來達(dá)到更好的交互性,常見的有漫畫左鍵前進(jìn)、右鍵后退。
第一步我們要屏蔽瀏覽器默認(rèn)的右鍵點擊行為,即阻止彈出框。
首先要將阻止彈出函數(shù)綁定到目標(biāo)元素上:
//阻止瀏覽器默認(rèn)右鍵點擊事件
$("div").bind("contextmenu",
function(){
return
false;
})
如此一來,div元素的右擊事件就被屏蔽了,而瀏覽器其他區(qū)域不受影響,如果你想在整個頁面屏蔽右擊事件,只需這樣做:
document.oncontextmenu
=
function()
{
return
false;
}
接下來就可以為元素綁定右擊響應(yīng)函數(shù)了:
$("div").mousedown(function(e)
{
console.log(e.which);
//右鍵為3
if
(3
==
e.which)
{
$(this).css({
"font-size":
"-=2px"
});
}
else
if
(1
==
e.which)
{
//左鍵為1
$(this).css({
"font-size":
"+=3px"
});
}
})
示例效果為右擊字體縮小,左擊字體變大,且其它區(qū)域可以響應(yīng)默認(rèn)右擊事件。
完整代碼:
head
style
type="text/css"
div{
font-size:20px;
}
/style
script
src="../jquery.js"/script
script
$(function()
{
//阻止瀏覽器默認(rèn)右鍵點擊事件
/*document.oncontextmenu
=
function()
{
return
false;
}*/
//某元素組織右鍵點擊事件
$("div").bind("contextmenu",
function(){
return
false;
})
$("div").mousedown(function(e)
{
console.log(e.which);
//右鍵為3
if
(3
==
e.which)
{
$(this).css({
"font-size":
"-=2px"
});
}
else
if
(1
==
e.which)
{
//左鍵為1
$(this).css({
"font-size":
"+=3px"
});
}
})
})
/script
/head
body
div
div
/div
/body
以上這篇jQuery自定義元素右鍵點擊事件(實現(xiàn)案例)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
本文實例講述了jQuery實現(xiàn)獲取綁定自定義事件元素的方法。分享給大家供大家參考,具體如下:
(function
($)
{
//
自定義itemtab事件
$.fn.bind
=
function(types,
data,
fn)
{
//
重載jQuery.fn.bind方法,用來截獲綁定自定義事件的元素
if(typeof
types
==
'string'
'itemtab'
==
types)
{
var
itemTouchStart
=
-1;
//
touchstart位置
var
itemTouchMove
=
-1;
//
touchend位置,值為-1時表示未觸發(fā)
var
itemTriggerDistance
=
0;
//
拖動距離閥值,若大于該值則為拖動列表,若小于等于該值則為點擊列表項
var
itemMoved
=
false;
//
列表是否為拖動狀態(tài)
$(this).bind('touchstart',
function
(event)
{
if(!event.originalEvent.touches.length)
return
true;
itemMoved
=
false;
itemTouchStart
=
event.originalEvent.touches[0].pageX;
//
記錄起始位置
}).bind('touchmove',
function
(event)
{
if(!event.originalEvent.touches.length)
return
true;
itemTouchMove
=
event.originalEvent.touches[0].pageX;
//
當(dāng)前拖動位置
//console.log('touchmove:',
itemTouchStart,
itemTouchMove,
itemMoved);
if(Math.abs(itemTouchMove
-
itemTouchStart)
itemTriggerDistance)
{
itemMoved
=
true;
//
列表被拖動
}
}).bind('touchend',
function
(event)
{
//console.log('itemMoved:',
itemMoved);
if(itemMoved)
{
//
列表被拖動過,非點擊操作
return
true;
}
$(this).trigger('itemtab');
//
觸發(fā)自定義事件
});
}
return
this.on(
types,
null,
data,
fn
);
//
這種做法具有侵入性,多個類似的代碼會相互覆蓋,可采用深度復(fù)制方式調(diào)用原$.fn.bind方法
}
})(jQuery);
希望本文所述對大家jQuery程序設(shè)計有所幫助。
本文名稱:jquery事件元素,jquery中的事件有哪些
標(biāo)題來源:http://chinadenli.net/article23/dseegcs.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、Google、網(wǎng)站營銷、手機網(wǎng)站建設(shè)、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)