jQuery创建元素触发onclick事件

jQuery create element fires onclick event

本文关键字:onclick 事件 创建 元素 jQuery      更新时间:2023-09-26

我使用jQuery创建了一个锚,onclick事件似乎在创建元素时被触发。我已经在这个项目中使用了这种方法来创建元素几次,没有出现问题,我是否得到了错误的结果?

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

谢谢

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

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

您正在调用alert('test');并将其返回值分配给onclick。用这个代替:

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

因为我确信alert('test')只是一个例子,我也应该指出,如果你有同样的问题与一些功能,你可能只需要改变你的代码:

onclick: somefunction()

:

onclick: somefunction

如果您将参数传递给函数而不是通常传递给事件处理程序的event对象,则只需要将其包装在匿名函数中,就像我对alert('test');所做的那样。

这是一个更好的选择

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