亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于jQuery事件的問題

<!DOCTYPE?html>
<html>

<head>
????<meta?http-equiv="Content-type"?content="text/html;?charset=utf-8"?/>
????<title></title>
????<style>
????.test2?{
????????background:?#bbffaa;
????}
????.test3?{
????????background:?yellow;
????}
????.test2,.test3{
????????border:?1px?solid?red;
????}
????</style>
????<script?src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head>

<body>
????<h2>.click()方法</h2>

????<h4>測試一</h4>
????<button>元素綁定事件,彈出回調中的this</button>
????<script?type="text/javascript">
????????//this指向button元素
????????$("button:eq(0)").click(function()?{
????????	alert(this)
????????})
????</script>



????<h4>測試二</h4>
????<div?class="test2">
????????<p>$('button:first').click(function(e)?{alert(this)})</p>
????</div>
????<button>指定觸發事件</button>
????<script?type="text/javascript">
????????$('p').click(function(e)?{
????????????alert(e.target.textContent)
????????})
????????//this指向button元素
????????$("button:eq(1)").click(function()?{
????????????$('p').click()?//指定觸發綁定的事件
????????})
????</script>



????<h4>測試三</h4>
????<div?class="test3">
????????<p>$('.right').click(1111,?set)</p>
????</div>

????<button>不同函數傳遞數據</button>
????<script?type="text/javascript">

????????//不同函數傳遞數據
????????function?data(e)?{
????????????alert(e.data)?//1111
????????}

????????function?a()?{
????????????$("button:eq(2)").click(1111,?data)
????????}
????????a();

????</script>




</body>

</html>

? ?alert(e.target.textContent) ?測試2中的這個代碼什么意思啊

function data(e) {
? ? ? ? ? ?alert(e.data) //1111
? ? ? ?}

? ? ? ?function a() {
? ? ? ? ? ?$("button:eq(2)").click(1111, data)
? ? ? ?}
? ? ? ?a();

測試3看不懂啊 ?感覺好亂啊



正在回答

4 回答

?alert(e.target.textContent) ?彈框顯示你鼠標移上的元素的文本內容

你可以看成是這樣

$("button:eq(2)").click(1111,function(e){

????alert(e.data);

});

就是給第三個button添加一個click事件,點擊的時候,把click()中的第一個參數傳入data中,然后彈框顯示。

我是這樣理解的。

0 回復 有任何疑惑可以回復我~

我本來還想掙個最佳回答的。。。。結果晚了一步。。。

0 回復 有任何疑惑可以回復我~

?target 屬性規定哪個 DOM 元素觸發了該事件。 e.target是引發事件的元素。 所以第二段代碼中的 e.target就是p元素。e.target.textContent就是彈出p標簽的中的文本內容。

function data(e) { ? //定義一個函數 data。傳入參數e。
? ? ? ? ? ?alert(e.data) //1111 ?彈出,e.data
? ? ? ?}

? ? ? ?function a() { ? //定義函數a
? ? ? ? ? ?$("button:eq(2)").click(1111, data)

?? ?// ?點擊按鈕,傳入1111(注意這個傳入的1111是click函數里的eventData,這個是返回綁定當前事件處理函數時傳遞的附加數據。其類型取決于在綁定當前事件處理函數時所傳入的附加數據的類型。),因為后面的data沒有帶括號,所以這是一個賦值操作,測試三的函數部分其實可以這樣寫。

??function a() { ?
? ? ? ? ? ?$("button:eq(2)").click(1111, function data(e) {?
? ? ? ? ? ?alert(e.data)?
? ? ? ?}
?}
這樣就很明顯了。 e.data 就是1111.

? ? ? ?a(); //調用a 方法。
------------------------------------------------------補充一點---------------------------------------------

function fun(){
? ?return 5
}
var a=fun ?// fun代表函數。
var b=fun() ?//fun()代表函數的返回值。

JS中我們把以上代碼加粗的部分叫做函數,函數是一種叫做function引用類型的實例,因此函數是一個對象。對象是保存在內存中的,函數名則是指向這個對象的指針。

var a = fun 表示把函數名fun這個指針拷貝一份給變量a,但是這不是指函數本身被復制了一份。
就好比,地圖上上海市(對應函數對象)只有一個,但指向上海市的路標(對應指針)有很多,而且你還可以繼續添加(復制)無數個指向上海市的路標,但上海市本身不會被復制。


如果函數名后面加上圓括號就表示立即調用(執行)這個函數里面的代碼(花括號部分的代碼)。

另外函數聲明和函數表達式在私有作用域寫法方面也會在函數體后面加圓括號表示立即調用這個函數,題主可以參看JS的模仿塊級作用域的知識。

上面這段是我復制 知乎大神的,方便你的理解,哈哈,謝謝。

























5 回復 有任何疑惑可以回復我~
#1

一家之煮 提問者

textContent和text() 還有content()有什么區別啊
2017-01-12 回復 有任何疑惑可以回復我~
#2

一家之煮 提問者

還有 最后為什么還要調用下函數a啊 就是最后的那個a()
2017-01-12 回復 有任何疑惑可以回復我~
#3

我就叫李二毛 回復 一家之煮 提問者

textContent 屬性設置或返回指定節點的文本內容,以及它的所有后代。 這是屬性; text() 方法設置或返回被選元素的文本內容。 這是jq的方法。 content() 有這個方法嗎? 因為 function a() { $("button:eq(2)").click(1111, data) } 在 a 的函數里面啊。 默認沒調用。你調用了 ,點擊才會去調用data函數啊。
2017-01-12 回復 有任何疑惑可以回復我~
#4

慕函數5962187

有點沒明白,那個click(1111,data)這里的data指的是一個函數嘛
2017-02-02 回復 有任何疑惑可以回復我~
查看1條回復

e只是參數,任意取值;對應即可;e.target 是目標對象

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
jQuery基礎(三)—事件篇
  • 參與學習       89987    人
  • 解答問題       645    個

jQuery第三階段開啟事件修煉,掌握對頁面進行交互的操作

進入課程

關于jQuery事件的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號