午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

瀏覽:239日期: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
主站蜘蛛池模板: 婷婷97| 黄色一级大片免费版 | 国产精品久久久久久久久久免费 | 黄色片一区二区 | 黄色你懂的 | 亚洲国产日韩在线 | 三级福利视频 | 国产免费99 | 91亚洲精品视频 | 成人在线观 | 亚洲日本色 | 夜夜操av| 欧美久久一区 | 91无套直看片红桃 | 欧美日韩激情在线 | 国产视频第一页 | 日韩av网址在线观看 | 欧美天堂久久 | 日韩av在线资源 | 日本久久久久久 | 日韩在线观看视频一区二区 | 青草草在线视频 | 一区二区三区免费视频观看 | 欧美另类视频 | 天天天天天天干 | 亚洲婷婷av | 亚洲成人 av | 亚洲a毛片 | 欧美日韩无 | 日韩小视频在线 | 国产精品久久免费视频 | 免费观看一区二区三区 | 欧美性v | 国产精品毛片va一区二区三区 | 美女天天干 | 综合婷婷| 香蕉网在线 | 伊人影院久久 | 性爱视频在线免费 | 欧美a v| 岛国av网站|