色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

javascript - 關于行內元素onclick事件,為什么會出錯?

瀏覽:125日期:2023-04-12 16:31:26

問題描述

javascript - 關于行內元素onclick事件,為什么會出錯?

點擊時會報錯 show is not defined

為什么把show()函數放$(function(){})外面就好了?

問題解答

回答1:

onclick='show()'執行的是window.show()

回答2:

你append的html是字符串,onclick里的事件是show(),如果沒指定特定對象的方法,會默認去尋找全局方法,而$(function(){})是一個閉包

回答3:

寫成這樣看看

$(function() { leftMenu(); function show() {alert(’hhhhhhhh’); } function leftMenu() { var html = ’<p onclick='’+show()+’'>click me</dv>’$(’#box’).append(html); } })

直接調show()它其實是立即執行的,如果寫成onclick='show()',$(document).ready()是文檔加載完后執行的,當頁面結構完成了,你再點擊觸發show(),這個時候就會去window下面查找show(),當然結果就是undefined如果實在要寫在$(funciton(){})里,可以這樣做:

$(function() { leftMenu(); /*function show() {alert(’hhhhhhhh’); }*/function leftMenu() {var html = ’<p class='show'>click me</dv>’$(’#box’).append(html); } //做個事件委托 $(’body’).on(’click’, $(’.show’), function() {alert(’aaaaa’) }) })回答4:

show 函數是匿名函數內的,onclick 綁定的會去全局搜索,找不到匿名函數內定義的東西

回答5:

onclick會在window對象底下找自定義函數show(),也就是window.shou()。。所以是要放在$(function(){})函數外邊的。。所以以后把自定義函數都寫在$(function(){})外邊,一些后續的處理過程和調用,放在$(function(){})里面,確保文檔加載完成之后調用

回答6:

通俗易懂的說法:$(function(){})是文檔執行完畢再執行里面內容而你在文檔加載結束添加了綁定。他執行html的時候未找到show(),請采納

回答7:

其實是js的作用域引起的問題,onclick='show()'執行的是window里面的show()方法,但是Window里面并沒有這個方法。

回答8:

因為,$(function(){}) = $.ready(),也就是說頁面加載完畢后才聲明函數show , 但是你把show()寫在行內onclick事件,而這個時候的show函數還未聲明,所以會報 not defined

回答9:

把 show 方法的定義放到 leftMenu 的上面

回答10:

需要委托~~

標簽: JavaScript
主站蜘蛛池模板: 成人性免费视频 | 亚洲理论欧美理论在线观看 | 黄色三级欧美 | 在线日本看片免费人成视久网 | 日本亚洲成高清一区二区三区 | 欧美孕交视频 | 一级做a爱片特黄在线观看免费看 | 在线观看亚洲免费 | 国产日韩欧美精品一区二区三区 | 欧美成人免费在线视频 | 在线观看免费黄视频 | 欧美成人精品手机在线观看 | 国产a级三级三级三级 | 成熟性xxxxx 成网站在线观看人免费 | 日本xxxxx久色视频在线观看 | 日韩午夜| 国产精品久久久久久网站 | 久久久久久久岛国免费观看 | 成在线人免费视频 | 老师张开腿让我爽了一夜视频 | 最近手机高清中文字幕大全7 | 亚洲综合资源 | 欧美另类综合 | 国产成人99精品免费观看 | 国产孕妇孕交视频 | 亚洲一区二区三区中文字幕 | 91精品欧美一区二区综合在线 | 亚洲性网站 | 男人性天堂 | 欧美一级毛片一级毛片 | 福利姬在线精品观看 | 无圣光福利视频 | 日韩三级在线观看 | 国产专区一区 | 九九精品国产兔费观看久久 | a级做爰片毛片视频 | 免费又黄又爽的视频 | 成年人视频在线免费看 | 亚洲久久久| 国产自产自拍 | 亚洲欧美日韩国产精品26u |