JSにおけるonclick事件の一つのピット
7027 ワード
今日出会ったこの問題はもとから理解していません.ただ一つの融通性のある方法でこのバグを解決しました.
最後にバグを解決して記録するしかないです.
解決方法:
<a href="javascript:void()" onclick="alertErrorMsg(${declareNumber},${aaa})"> a>
<a href="javascript:void()" onclick="alertErrorMsg(${declareNumber})"> a>
// ,
function alertErrorMsg(declareNumber){
var url = "xxxxxxxxx";
var datas = {"declareNumber":declareNumber,_:new Date().getTime()};
$.ajax({
url:url,
data:datas,
type:"POST",
success:function(data){
var result = JSON.parse(data)["result"];
//layer.alert(typeof JSON.parse(data)["errorList"]);
var list = JSON.parse(data)["errorList"];
if(result == 1){// , json .
var str = "";
for(var i=0;i1)+"."+list[i]+"
";
}
layer.open({
type: 1,
title:" ",
skin: 'layui-layer-rim', //
area: ['600px', '400px'], //
content: str
});
}else if(result == 2){//
layer.alert(' !!!');
}else{// ,
layer.alert(' !!!');
}
},
error:function(){
layer.alert(' !!!');
}
});
}
A状態で、私が入ってきたのは二つのStringタイプです.onclickは大丈夫です.B状態で、私が入ってきたのはStringタイプで、onclickにエラーメッセージがありました.// fff30368a2774ee69ce41968a473a8ca
Uncaught ReferenceError: fff30368a2774ee69ce41968a473a8ca is not defined
ここで私は会社のトップと長い間話し合ったが、手がかりは一つもなかった.最後にバグを解決して記録するしかないです.
解決方法:
<a href="javascript:void()" id="errorMsg" class="btn btn-danger"> a>
<input type="hidden" id="declareNumber" value="${declareNumber }"/>
// dom a , js
//
$(function(){
$("#errorMsg").click(function(){
alertErrorMsg($("#declareNumber").val());
});
});
// js , class
$(function(){
//$("#sample-table")
//on("click",,".numberClass",function(){}); id sample-table class numberClass , , alertErrorMsg()
$("#sample-table").on("click",".numberClass",function(){
alertErrorMsg($(this).attr("name"));
});
});
以上はこの問題の解決方法ですが、もし原理を知っている方がいたら、コメントで教えてください.ありがとうございます.