第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

測試三中mousedown(1111, data)中1111是參數(shù),而date是函數(shù),不知道我這樣的理解對不對

<h4>測試三</h4>

? ? <div class="test3">

? ? ? ? <p>$('.right').mousedown(1111, set)</p>

? ? </div>

? ? <button>不同函數(shù)傳遞數(shù)據(jù)</button>

? ? <script type="text/javascript">

? ? //不同函數(shù)傳遞數(shù)據(jù)

? ? function data(e) {

? ? ? ? alert(e.data) //1111

? ? }


? ? function a() {

? ? ? ? $("button:eq(2)").mousedown(1111, data)

? ? }

? ? a();

? ? </script>

1111這個參數(shù)是通過?function data(e)中的e傳過去的,是嗎?兩個function之間的關(guān)系是怎樣的,它們是獨立的嗎,如果缺少一個,另一個會正常運行嗎?

正在回答

6 回答

課程對這個回調(diào)函數(shù)的問題講解得不是很清楚。

先看click函數(shù)(mousedown函數(shù)同理),語法規(guī)則為?jQueryObject.click( [ [ data ,] ?handler ] )。可以看到里面的參數(shù)是可選的(中括號的意思是可以有這個參數(shù),也可以沒有這個參數(shù)),所以我們可以看到

  1. $("button").click(handler),

  2. $("button").click(someData, handler)

兩種不同的寫法。

這個課程之前的系列里面,出現(xiàn)的主要是以上第一種情況,例如

$("button").click(function( ) {

????alert("點擊后就出來這一句話");?

});?

這個比較好理解,通過綁定點擊事件處理函數(shù),點擊后就觸發(fā)該function(一個匿名函數(shù))。

如果我們不想把代碼直接寫在click( )的這個括號里面,就可以另外聲明一個函數(shù),再把函數(shù)名給傳遞進去,替代原來function( ) {blablabla} 這一串代碼的位置。這里吐槽一下老師的函數(shù)命名,起data這個名字很容易和e.data中的data搞混,實際上兩個data無關(guān),函數(shù)名隨便起什么都可以。

例如我們聲明一個函數(shù)?

function alertSomething() {

????alert("現(xiàn)在你可以看到我了!");

}

然后我們再把這個函數(shù)名作為參數(shù)傳遞到之前那個click函數(shù)中,像這樣:

$("button").click( alertSomething );

就完成了和之前相同的功能,但這樣就把具體實現(xiàn)的代碼單獨寫成了一個函數(shù),比較靈活。

同時,這個alertSomething函數(shù)還可以有一個參數(shù),老師的例子起的參數(shù)名是e,這個也沒什么特殊的,指代的應(yīng)該是event這個單詞,估計是習慣。那再看之前出現(xiàn)過的這個函數(shù):

$('p').click(function(e) {

????alert(e.target.textContent)

})

意思就是輸出“該事件(的). 目標(的). 文本內(nèi)容”。這里事件是某p標簽被點擊了,因此回調(diào)函數(shù)的參數(shù)e就傳遞了這個事件,如果頁面上有大量p標簽的話,用這樣一個參數(shù)e就把被點擊的那個p給拎了出來,e.target指的就是這個p。

最后再來說這個data部分。剛才說的click()函數(shù)的第二種寫法,就是帶有兩個參數(shù)的,一個是someData,一個是回調(diào)函數(shù)handler,這個someData可以被當作參數(shù)傳遞到事件e的data屬性里。這個是自動傳遞進去的,就像參數(shù)e指代當前點擊事件,并不由用戶設(shè)置,而是自動賦值一樣。

function handleData(e) {

????alert(e.data) //12345

}

function a() {

???? $("button:eq(2)").click(12345, handleData)

}

a( );

我稍微把函數(shù)名改了一下,看得更清楚一些,這個12345直接被賦值給了e的data屬性,通過alert函數(shù)可以證明這一點。事實上我們可以傳遞更復(fù)雜的結(jié)構(gòu),例如將參數(shù)12345改成某個字典型變量,那么e.data.key就可以訪問字典型變量的某個value了。

老師的這個例子有點難懂,主要原因就在于一次把可選參數(shù),函數(shù)指針傳遞,data參數(shù)傳遞,回調(diào)幾個概念放在了一起,而且函數(shù)名還有點讓人容易混淆,把這些概念拆開單獨一個一個地理解就容易些。


28 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕粉4340077

請問課程中: function data(e) { alert(e.data) //1111 } function a() { $("button:eq(2)").mousedown(1111, data) } a(); mousedown(1111,data)中data是不是指前一個函數(shù)data()?這樣寫是為了調(diào)用前一個函數(shù)?
2016-12-26 回復(fù) 有任何疑惑可以回復(fù)我~
#2

UltraNeo 回復(fù) 慕粉4340077

對,就是這樣。
2016-12-26 回復(fù) 有任何疑惑可以回復(fù)我~
#3

lx200800

感謝您
2017-03-09 回復(fù) 有任何疑惑可以回復(fù)我~

非常感謝

0 回復(fù) 有任何疑惑可以回復(fù)我~

看了這里,表示理解了

0 回復(fù) 有任何疑惑可以回復(fù)我~

感謝了,這老師不嚴謹??!不過很不錯了!

0 回復(fù) 有任何疑惑可以回復(fù)我~

終于理解了,回答很到位,不然我老是糾結(jié)兩個data是什么意思了

0 回復(fù) 有任何疑惑可以回復(fù)我~

1111是作為參數(shù)傳過去的,這兩個函數(shù)不是獨立的,缺少一個都運行不了。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

測試三中mousedown(1111, data)中1111是參數(shù),而date是函數(shù),不知道我這樣的理解對不對

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號