jQuery create element fires onclick事件

时间:2011-09-01 10:24:08

标签: javascript jquery element

我使用jQuery创建一个锚点,并且在创建元素时似乎会触发onclick事件。我已经使用this method创建了几次这个项目的元素而没有任何问题,我是否得到了错误的结束?

jQuery('<a/>', {
    href: '#',
    name: 'link_html_edit',
    id: 'link_html_edit',
    html: 'input HTML text',
    onclick: alert('test')
}).appendTo(spanDefaultValue);

由于

3 个答案:

答案 0 :(得分:7)

查看此页面上的jQuery文档,您应该这样做:

$("<a/>", {
   href: '#',
    name: 'link_html_edit',
    id: 'link_html_edit',
    html: 'input HTML text',
  click: function(){
     alert('test');
  }
}).appendTo("body");

答案 1 :(得分:6)

您正在调用alert('test');并将其返回值分配给onclick。请改用:

onclick: function(){ alert('test'); }

由于我确信alert('test')只是一个例子,我还应该指出,如果你对某些功能有同样的问题,你可能只需更改你的代码:

onclick: somefunction()

要:

onclick: somefunction

如果您将参数传递给通常传递给事件处理程序的alert('test');对象以外的函数,则只需要像使用event一样将它包装在匿名函数中。

答案 2 :(得分:4)

这是更好的选择

$("<a/>", {
   href: '#',
    name: 'link_html_edit',
    id: 'link_html_edit',
    html: 'input HTML text'
}).bind('click',function(){ // your function}).appendTo("body");