例如我有这样的代码:
$("#total").html("Price $<span>" + value + "</span>");
我还想在那里添加一个href按钮
$("#total").html("Price $<span>" + value + "</span><a id='remove' href='#'>remove</>);
但我如何为href添加onclick
事件?
更新
我真的很喜欢这个解决方案:
//Create the link to remove the item beforehand, and add the onclick event handler.
var removeLink = $("<a id='remove' href='#'>remove</a>").click(function(e) {
//Click event handler here.
});
$("#total").html("Price $<span>" + value + "</span>"); //Create the price value
$("#total").append(removeLink); //Add the remove link.
因为我的表单上有很多删除链接,但我有一个问题如何在这种情况下将任何参数传递给该click函数?
答案 0 :(得分:4)
尝试这样的事情:
//Create the link to remove the item beforehand, and add the onclick event handler.
var removeLink = $("<a id='remove' href='#'>remove</a>").click(function(e) {
//Click event handler here.
});
$("#total").html("Price $<span>" + value + "</span>"); //Create the price value
$("#total").append(removeLink); //Add the remove link.
它比一个班轮更冗长,但在我看来它非常易读。
在回复下面的评论时,如果您想传递参数,可以通过多种方式进行。既然你正在使用Jquery,我可以通过两种主要方式来思考:
方法1:利用能够访问外部范围变量的匿名函数
var param = 1234; // <-- We know this value before we create the link
var removeLink = $("<a id='remove' href='#'>remove</a>").click(function(e) {
var someVariable = param + 4321;
alert(someVariable); //Shows "5555" in a message box when link is clicked.
});
方法2:使用jQuery.data
var param = 1234; // <-- We know this value before we create the link
var removeLink = $("<a id='remove' href='#'>remove</a>").click(function(e) {
var someVariable = jQuery.data(this, 'param') + 4321;
alert(someVariable); //Shows "5555" in a message box when link is clicked.
});
jQuery.data(removeLink, 'param', param); // <-- Save the param as a Jquery data value
答案 1 :(得分:1)
你可以通过几种方式做到这一点,live()
就是一个例子,或者......
$("#total").html("Price $<span>" + value + "</span><a id='remove' href='#'>remove</a>");
$("#remove").click(function() { /* ... */ });
或
$("#total").html("Price $<span>" + value + "</span><a id='remove' onclick='doSomething();' href='#'>remove</a>");
以及使用set assign或chaining等的其他方式
答案 2 :(得分:1)
$("#total").html(
$("Price $<span>" + value + "</span>").append(
$("<a id='remove' href='#'>remove</a>").click(function(){
// Click Handler
})
)
);
答案 3 :(得分:0)
您应该可以使用简单的JQuery 查找功能和点击处理程序来完成此操作:
var h = $("#total").html("<span>Price $<span>" + value + "</span><a id='remove' href='#'>remove<a/></span>");
h.find('a').click(function() { alert('hello') });
答案 4 :(得分:0)
您可以使用链接
尝试此操作$("#total").html("Price $<span>" + value + "</span><a id='remove' href='#'>remove</>).find(">a").click(function(){
//on click code goes here
});