trigger(type,[data])
成都創新互聯主要從事成都網站設計、成都網站制作、網頁設計、企業做網站、公司建網站等業務。立足成都服務瀘水,10年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18980820575
在每一個匹配的元素上觸發某類事件。
這個函數也會導致瀏覽器同名的默認行為的執行。比如,如果用trigger()觸發一個'submit',則同樣會導致瀏覽器提交表單。如果要阻止這種默認行為,應返回false。
你也可以觸發由bind()注冊的自定義事件
返回值 jQuery
參數
type (String) : 要觸發的事件類型
data (Array) : (可選)傳遞給事件處理函數的附加參數
示例
提交第一個表單,但不用submit()
jQuery 代碼:
$("form:first").trigger("submit")
--------------------------------------------------------------------------------
給一個事件傳遞參數
jQuery 代碼:
$("p").click( function (event, a, b) {
// 一個普通的點擊事件時,a和b是undefined類型
// 如果用下面的語句觸發,那么a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]);
--------------------------------------------------------------------------------
下面的代碼可以顯示一個"Hello World"
jQuery 代碼:
$("p").bind("myEvent", function (event, message1, message2) {
alert(message1 + ' ' + message2);
});
$("p").trigger("myEvent", ["Hello","World!"]);
=====================================================================
triggerHandler(type,[data])
這個特別的方法將會觸發指定的事件類型上所有綁定的處理函數。但不會執行瀏覽器默認動作.
返回值 jQuery
參數
type (String) : 要觸發的事件類型
data (Array) : (可選)傳遞給事件處理函數的附加參數
示例
如果你對一個focus事件執行了 .triggerHandler() ,瀏覽器默認動作將不會被觸發,只會觸發你綁定的動作。
HTML 代碼:
button id="old".trigger("focus")/button
button id="new".triggerHandler("focus")/buttonbr/br/
input type="text" value="To Be Focused"/
jQuery 代碼:
$("#old").click(function(){
$("input").trigger("focus");
});
$("#new").click(function(){
$("input").triggerHandler("focus");
});
$("input").focus(function(){ $("spanFocused!/span").appendTo("body").fadeOut(1000); });
有時候我們需要頁面自動點擊超鏈接或者按鈕,可以用js或者jQuery利用程序去點擊,方法很簡單,按鈕或超鏈接代碼如下:
點擊超鏈接 點擊按鈕
上面是一個超鏈接和一個按鈕,并且超鏈接和按鈕都綁定了點擊事件
先看超鏈接,如果我們打算點擊超鏈接的同時不僅觸發事件而且跳轉到href的指定鏈接,可以用:
script
document.getElementById("alink").click();/script
這樣就可以實現上面的功能,但是如果我只想觸發事件而不想跳轉呢,方法有兩個,第一個是href寫上href="javascript:;"
另外的方法是引入jQuery,然后用jQuery點擊事件觸發
script
$("#alink").click();/script
這樣就不會跳轉了
如果是按鈕的話,直接用以下代碼:1 script2 //真正的用程序點擊按鈕3 document.getElementById("btn").click();4 //沒有點擊按鈕,只是執行了按鈕所綁定的事件5 document.getElementById("btn").onclick();6 /script
function test(){
$("[name=userList]:checkbox").click(); //有方法體就是重寫,沒方法體就是調用。所以,這樣。
}
test();
-----------------------------------
input type="hidden" id='h_input' /
script
$("[name=userList]").click(function(){
//多個值的話
var values = "";
$("[name=userList]:checked").each(function(){
values += $(this).val()+"|"; //用 ‘|’ 連接
});
$("#h_input").val(values);
});
/script
bind();
參數一:要綁定事件函數的事件名。
參數二:要綁定的事件函數(事件函數名),如果將來有可能刪除該綁定的函數,則必須傳函數名。
bind()方法可以通過鏈式調用的形式連續多次調用,進而個同一標簽的同一事件(不同事件)添加不同的事件函數。
on('事件名',fn);
one('事件名',fn);該方法綁定的事件函數只能被觸發一次。
unbind();
參數一:要解綁事件函數的事件名(如果只傳這一個參數,則該事件名中綁定的函數全部解除)。
參數二:要解除綁定的事件函數名。
off();
注意:bind()和unbind()在3.0后已經被on()和off()取代。
事件簡寫本質就是簡化給標簽添加事件函數的操作,標準的添加事件方法:on/bind/one,類似于js的DOM2級添加事件函數操作;事件簡寫類似于DOM0級的事件綁定操作。
jq事件簡寫綁定事件函數的技術實現原理:
1、jq給每一個事件名定義了同名的函數,用戶調用的事件簡寫形式,就是在調用這個和事件名同名的函數
2、同名函數內部實現原理:當用戶調用了該函數,首先獲取該函數的函數名(函數名代表的是事件名),在函數內部通過on把通過參數傳進來的函數綁定在函數名對應的事件上。
blur(fn):失去焦點時觸發該方法。
focus(fn):當鼠標或tab按鈕讓元素獲得焦點時,觸發該函數。
change(fn):表單元素失去焦點(單選框、復選框、下拉菜單標簽被選中即可觸發,不需等待失去焦點),觸發該事件。
click(fn):鼠標點擊時觸發該事件。
dbclick(fn):雙擊元素時觸發該事件(注意:把click和dbclick用于同一個元素會產生問題)。
$(window).scroll(fn):當頁面滾動時觸發事件。
hover(fn1,fn2):鼠標移入觸發fn1函數,鼠標移出觸發fn2函數。
復合事件:toggle().在1.8之前中,復合了奇、偶次點擊事件,在1.9之后的版本中toggle方法用于jq的動畫
toggle()方法在1.8之前的版本中需要兩個函數類型作為參數,奇數次點擊觸發第一個函數,偶數次店家觸發第二個函數。
事件對象的獲取:在事件觸發的函數中傳遞event參數。
event.type:事件類型
event.target:觸發事件的元素
e.currentTarget:事件綁定在哪個元素上
event.pageX:鼠標相對于文檔的左側坐標
event.pageY:鼠標相對于文檔的頂部坐標
e.preventDefault():取消標簽事件,如a標簽的頁面跳轉。
e.stopPropagation():阻止事件冒泡
1、阻止事件冒泡
stopPropagation()方法
2、阻止默認行為
preventDefault()方法
注意:1、return false 在jQuery中是即阻止事件冒泡又阻止默認行為
2、jQuery不支持事件捕獲
解密jQuery事件核心:
常用模擬
在jQuery中,可以使用trigger()方法完成模擬操作。
例如,使用如下代碼來觸發id為btn按鈕的click事件。
代碼示例:
$("#btn").trigger("click");
當頁面加載完畢后,就會立刻輸出想要的效果。
也可以直接用簡化寫法click():
代碼示例:
$("#btn").click();
回車一般的作用是提交或者換行,提交的話就是下面這樣
$('#formXXX').submit(function() {
。。。
});
換行的話就是這樣
$('#target').html($('#target').html()+'\n')
網站名稱:jquery模擬事件,jQuery事件處理
文章位置:http://m.newbst.com/article42/dsigphc.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、建站公司、網站導航、云服務器、虛擬主機、做網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯