jQuery live不工作

时间:2012-01-16 11:08:37

标签: javascript jquery facebook

为什么以下代码不起作用:

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

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

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

可在此处查看该页面:

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

5 个答案:

答案 0 :(得分:4)

您当前的选择器为short

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

这不是故意的。你在寻找:

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

答案 1 :(得分:2)

因为您的选择器略有错误。试试这个(注意引用整个选择器表达式的事实):

$('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

答案 2 :(得分:2)

它不起作用,因为你试图选择一个带有$('button ...')的“输入”

试试这个

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)


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