未捕获的ReferenceError:在HTMLElement.onclick上未定义((index):1)

时间:2018-11-16 12:05:16

标签: javascript jquery html

这是我的代码

var div = $("#divId").html("");
var messageId = 12;
var message = "not found";
div.append('<h1 class="text-danger" onclick="showMessage('+ messageId + ','+ message + ')">click here </h1>');

console.log( "ready!" );



function showMessage(id,msg) {
    alert('id :-'+id + ' msg:- '+msg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divId" >
         hi
</div>

如何解决此错误,我被困在这里,我是javascript新手,请帮助

1 个答案:

答案 0 :(得分:1)

我将更改您的显示消息单击事件的工作方式:

$(document).ready(function(){
AddHeaderTagToDom();
});

function AddHeaderTagToDom(){
var div = $("#divId");
var messageId = 12;
var message = "not found";
div.append('<h1 id="messageHeader" class="text-danger" data-message-id='+ messageId +' 
data-message-text ='+ message +'>click here </h1>');

BindShowMessage();
}

function BindShowMessage(){
$('#messageHeader').on('click',function(){
var id = $(this).data('message-id');
var text = $(this).data('message-text');

DoShowMessage(id,text);
});
}

function DoShowMessage(id,msg){
alert('id :-'+id + ' msg:- '+msg);
}

因此,基本上,当文档加载时,将h1标签附加到div元素,并在附加h1标签后注册click事件。单击h1后,获取消息ID和文本的数据属性,然后调用showMessage方法。