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

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

測試三中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)系是怎樣的,它們是獨(dú)立的嗎,如果缺少一個,另一個會正常運(yù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("點(diǎn)擊后就出來這一句話");?

});?

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

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

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

function alertSomething() {

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

}

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

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

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

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

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

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

})

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

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

function handleData(e) {

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

}

function a() {

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

}

a( );

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

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


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ù)我~

感謝了,這老師不嚴(yán)謹(jǐn)啊!不過很不錯了!

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

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

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

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

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

舉報(bào)

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號

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