首页 > 解决方案 > 使用jQuery动态创建一个在选择图像时调用的函数

问题描述

我正在使用 jQuery 在页面上动态显示可选图像。当我选择图像时,控制台显示错误“Uncaught ReferenceError: MTU4 is not defined at HTMLAnchorElement.onclick (AwardsEdit.html:1)”。这就是所谓的:

“getAwardDetailsFunction(MTU4)”。

jQuery:

contents += '<figure>';
contents += '<a href="#" onclick="getAwardDetailsFunction('+obj.awardId+')">';
contents += '<img id="awardImage'+obj.awardId+'" src="' + obj.awardPicture + '" alt="Award image" class="img-thumbnail">'; 

我尝试使用以下方法在变量 MTU4 周围加上引号:

contents += '<figure>';
contents += '<a href="#" onclick="getAwardDetailsFunction('+'\\"'+obj.awardId+'\\"'+')">';
contents += '<img id="awardImage'+obj.awardId+'" src="' + obj.awardPicture + '" alt="Award image" class="img-thumbnail">'; 

这给了我控制台中的错误“AwardsEdit.html:1 Uncaught SyntaxError: Invalid or unexpected token”。

被调用的函数是:

function getAwardDetailsFunction(awardID) {

    alert("awardID: " + awardID)

    sessionStorage.setItem('ssAwardID', awardID);

    window.location = "AwardUpdate.html";
}

标签: javascriptjquery

解决方案


我花了几天时间,然后在发布后我找到了答案:

代替:

contents += '<a href="#" onclick="getAwardDetailsFunction('+obj.awardId+')">';

和:

contents += '<a href="#" onclick="getAwardDetailsFunction(\'' + obj.awardId.replace('\'', '&quot;') + '\')"</a>';

推荐阅读