jQuery live无法工作

jQuery live not working

本文关键字:工作 live jQuery      更新时间:2023-09-26

为什么下面的代码不起作用:

$('button[name="publish"]', 'button[name="cancel"]').live('click', function(){
    alert('ddddd');
});

html是动态生成的,基本上是facebook的共享对话框,它有以下两个按钮:

<input type="button" name="publish" value="Share">
<input type="button" name="cancel" value="Cancel">
  • 对jQuery库的引用很好并且已检查
  • 使用就绪处理程序

页面可以在这里查看:

https://www.facebook.com/pages/Development-Application-Testing-Page/124719744278421?sk=app_126015774115928

您当前的选择器是的缩写

$('button[name="cancel"]').find('button[name="publish"]')

这不是故意的。您正在寻找:

$('button[name="publish"], button[name="cancel"]')

因为您的选择器有点错误。试试这个(注意整个选择器表达式都被引用了):

$('button[name="publish"], button[name="cancel"]').live('click', function(){
    alert('ddddd');
});

您目前所拥有的是查找选择器的第一部分(button[name="publish"]),并使用选择器的第二部分作为上下文(换句话说,它查找与button[name="publish"]匹配的元素以及与button[name="cancel"]匹配的元素的后代)。

还要注意,live方法已弃用。如果您使用的是jQuery 1.7+,请使用on。如果您使用的是较旧的版本,请使用delegate

它不起作用,因为您正试图用$('按钮…')选择一个"输入"

试试这个

$('input[name="publish"] , input[name="cancel"]').live('click', function(){
    alert('ddddd');
});
$('input[name=publish] , input[name=cancel]').live('click', function(){
    alert('ddddd');
});

$('button[name="publish"], button[name="cancel"]').live('click', function(){
    alert('ddddd');
});