jQuery 创建元素触发 onclick 事件

发布于 2024-12-02 08:20:18 字数 374 浏览 0 评论 0原文

我使用 jQuery 创建一个锚点,并且在创建元素时似乎会触发 onclick 事件。我已经在这个项目中多次使用这种方法创建元素,没有出现任何问题,我拿错了棍子的一端?

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

谢谢

I create a anchor using jQuery and the onclick event seems be triggered when the element is created. I've used this method of creating elements a few times with this project without a problem, have I got the wrong end of the stick?

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

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

深海蓝天 2024-12-09 08:20:19

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

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

Looking at the jQuery documentation on this page you should be doing this:

$("<a/>", {
   href: '#',
    name: 'link_html_edit',
    id: 'link_html_edit',
    html: 'input HTML text',
  click: function(){
     alert('test');
  }
}).appendTo("body");
莫相离 2024-12-09 08:20:19

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

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

因为我确信 alert('test') 只是一个例子,我还应该指出,如果您对某些函数遇到同样的问题,您可能只需更改代码即可:

onclick: somefunction()

收件人:

onclick: somefunction

如果您将参数传递给 eventalert('test'); 所做的那样> 通常传递给事件处理程序的对象。

You're calling alert('test'); and assigning it's return value to onclick. Use this instead:

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

Since I'm sure alert('test') is just an example I should also point out that if you have the same problem with some function you likely can just change your code from:

onclick: somefunction()

To:

onclick: somefunction

You only need to wrap it in an anonymous function the way I did with alert('test'); if you're passing arguments to the function other than the event object that is normally passed to an event handler.

月亮是我掰弯的 2024-12-09 08:20:19

这是更好的选择

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

This is much better alternative

$("<a/>", {
   href: '#',
    name: 'link_html_edit',
    id: 'link_html_edit',
    html: 'input HTML text'
}).bind('click',function(){ // your function}).appendTo("body");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文