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