日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

闭包引起的onclick不起作用

發(fā)布時間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 闭包引起的onclick不起作用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題描述:在html頁面綁定οnclick="cli()" 方法,定義在$(function( function cli(){} ))不起作用

$(function(){
function createTableData(param){
$.ajax({
url: "/api/ezs/dataAcquisition/list",
data:{"param":JSON.stringify(param)},
type: 'post',
dataType: 'json',
success: function (data) {
// console.log(data);
$("#collection_content").empty();
for(var i=0;i<data.data.length;i++){
var collection_table='<div class="ezsm-collection-table">' +
'<table cellspacing="0">' +
'<tr><td>名稱/規(guī)格:</td><td id="openDetail" οnclick="openDetail('+data.data[i].id+');">'+data.data[i].specification+'</td></tr>' +
'<tr><td>地區(qū):</td><td>'+data.data[i].areaName+'</td></tr>' +
'<tr><td>來源:</td><td>'+data.data[i].source+'</td></tr>' +
'<tr><td>昨日價格:</td><td>'+data.data[i].price+'</td></tr>' +
'<tr>' +
'<td>當(dāng)日價格:</td>' +
'<td>' +
'<div class="ezsm-collection-table-btn" οnclick="unchangedBtn('+data.data[i].id+')">不變</div>' +
'<div class="ezsm-collection-table-btn" οnclick="Ezsm_Alert_UpPrice('+data.data[i].id+');">更新</div>' +
'</td>' +
'</tr>' +
'</table></div>';
$("#collection_content").append(collection_table);
}
},
error: function (status) {}
});
}
//此時定義的opendetail不起作用
function openDetail(trendId){
localStorage.removeItem('trendId');
localStorage.setItem('trendId',trendId);

window.location.href="detail.html";

}

})

解決辦法
將$(function(){})換成閉包
(function(window){
//打開詳情
window.openDetail=function(trendId){

localStorage.removeItem('trendId');
localStorage.setItem('trendId',trendId);
window.location.href="detail.html";
};

})(window);

原因:$(function(){})只在自己的作用域起作用,onclick綁定的方法只在初始化頁面時加載之后就清空其作用域,除非將該方法放在$(function(){})外面,但這樣會出現(xiàn)代碼冗余.
此時將該方法放在window下面,這樣調(diào)用的時候就可以了

記錄: 不建議將onclick綁在頁面上,最優(yōu)的是使用h5 data-*自定義屬性(具體使用看js之 data-*自定義屬性)


?

轉(zhuǎn)載于:https://www.cnblogs.com/zhaozhenzhen/p/8795736.html

總結(jié)

以上是生活随笔為你收集整理的闭包引起的onclick不起作用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。