javascript - html中阻止默認(rèn)事件
問題描述
<!DOCTYPE HTML><html lang='en-US'><head> <meta charset='UTF-8'> <title></title></head><body> <a onclick = 'return f1()'>騰訊</a> <script type='text/javascript'>//定義f1函數(shù)function f1(){ console.log( ’騰訊被點(diǎn)擊了’); return false;}</script></body></html>
問題解答
回答1:onclick是個(gè)函數(shù),不return就是沒有返回值,怎么阻止默認(rèn)事件?跟你f1是否return沒有關(guān)系
回答2:能不能阻止默認(rèn)行為是看onclick函數(shù)的返回值,有return的時(shí)候,返回f1的返回值false。
不寫return的onlick處理函數(shù)如下,此時(shí)的返回值因?yàn)闆]有return語(yǔ)句,所以默認(rèn)返回undefined
瀏覽器會(huì)對(duì)頁(yè)面元素的某些元素產(chǎn)生默認(rèn)行為。比如一個(gè) a 鏈接點(diǎn)擊之后,會(huì)自動(dòng)跳轉(zhuǎn)至對(duì)應(yīng) href 地址網(wǎng)頁(yè)去;又如一個(gè)表單,當(dāng)你點(diǎn)擊 提交 按鈕之后,默認(rèn)會(huì)將數(shù)據(jù)發(fā)送至 form 的 action 地址去。這些都是瀏覽器的處理頁(yè)面元素的默認(rèn)行為,當(dāng) onlick = 'return false' 時(shí),會(huì)禁止掉這種瀏覽器的默認(rèn)行為。故而你的這段代碼并不會(huì)跳轉(zhuǎn)至 騰訊首頁(yè) 去。<a onclick = 'return f1()'>騰訊</a> function f1(){console.log( ’騰訊被點(diǎn)擊了’);return false; }
另外,你應(yīng)該善用搜索引擎,百度一下,第一條就可以解決掉你的困惑,地址如下:https://zhidao.baidu.com/ques... 。望共同進(jìn)步,共勉之~
回答4:<a onclick='myFun(event)'>123</a>function myFun(e) { e.preventDefault(); console.log(12313123)}
這樣豈不是更簡(jiǎn)單。。。。用e.preventDefault();來阻止
還有,既然要阻止,干嘛還要在頁(yè)面上寫上鏈接。。。
回答5:onclick屬性的值是js代碼,return f1(),如果f1()返回false的話,return f1()就代表return false。當(dāng)然,這個(gè)return是有點(diǎn)多余,但是語(yǔ)法也沒錯(cuò)。只要語(yǔ)法沒錯(cuò),實(shí)現(xiàn)了就行。
相關(guān)文章:
1. docker gitlab 如何git clone?2. 關(guān)于docker下的nginx壓力測(cè)試3. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!4. docker鏡像push報(bào)錯(cuò)5. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。6. mysql - 用PHPEXCEL將excel文件導(dǎo)入數(shù)據(jù)庫(kù)數(shù)據(jù)5000+條,本地?cái)?shù)據(jù)庫(kù)正常,線上只導(dǎo)入15條,沒有報(bào)錯(cuò),哪里的問題?7. PC 手機(jī)兼容的 編輯器8. angular.js - angularJs ngRoute怎么在路由傳遞空字符串及用ng-switch取得9. docker不顯示端口映射呢?10. docker-compose中volumes的問題
