如何使用jquery将onclick事件添加到动态href中

时间:2011-07-28 20:29:03

标签: jquery

例如我有这样的代码:

$("#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函数?

5 个答案:

答案 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
});