我在这里发现了这个问题Use JQuery to build an anchor,用JQuery动态构建锚。
我想知道如何将onclick事件添加到我的超链接中?
我一直在努力做到这一点,但没有任何反应。永远不会添加onclick事件。
function init(){
var btnSave = "<a id=\"btnSave\">Save</a> "
$(btnSave).on("click", {Arg1 : "1", Arg2: "2"}, save)
var div = $("#myDiv");
div.html(btnSave);
}
function save(e){
var data = e.data;
var arg1 = data.Arg1;
var arg2 = data.Arg2;
//...
}
我知道我可以像这样“嵌入”onclick:
var btnSave = "<a id=\"btnSave\" onclick=\"" + ... + "\">Save</a> "
但是我想做的方式,在我看来看起来更干净。我接受另一种清洁选择。感谢。
我的函数save计划多次重复使用,其他超链接参数是不同的。
更新
根据建议我将其更改为此,但仍然看不到添加到我的HTML元素的onclick。
function init(){
var btnSave = $("<a id='btnSave'></a>").html("Save").on("click", {Arg1 : "1", Arg2: "2"}, save);
$("#myDiv").html(btnSave);
}
在Google Chrome控制台中,我测试了btnSave的值,控制台会记录此
"<a id="btnSave">Save</a>"
答案 0 :(得分:0)
这行代码:
div.html(btnSave);
......等同于:
div.html("<a id=\"btnSave\">Save</a> ");
使用以下代码创建的锚点基本上已丢失,因为它从未附加到DOM:
$(btnSave).on("click", {Arg1 : "1", Arg2: "2"}, save);
相反,您可以将该锚存储在一个新变量中,您可以将其放入DIV:
function init(){
var btnSave = "<a id=\"btnSave\">Save</a> ",
anchor = $(btnSave).on("click", {Arg1 : "1", Arg2: "2"}, save);
var div = $("#myDiv");
div.html(anchor);
}
或更简单:
function init(){
var anchor= $('<a id="btnSave">Save</a> ')
.on('click', {Arg1 : '1', Arg2: '2'}, save)
$('#myDiv').html(anchor);
}
答案 1 :(得分:0)
如果你知道export default Ember.Component.extend({
mycontroller: Ember.inject.controller('mycontroller'),
funcUsingControllerToSendAction(args){
let mycontroller = this.get('mycontroller');
mycontroller.send('myaction',args);
}
});
或元素的选择器,则在添加元素时不需要添加任何事件。您只需将以下内容添加到JS代码中即可:
id
这适用于所有动态添加的元素。