Javascript .click()在使用jQuery时不工作
我有一个正常的js脚本,从我的项目开始就一直在工作。但是现在由于某种原因,当我点击按钮时,什么都不起作用,没有来自点击事件的响应(注意这曾经起作用),控制台日志中也没有显示任何内容,说明是否存在某种错误。。。剧本就是没有反应 以下是HTML:Javascript .click()在使用jQuery时不工作,javascript,jquery,html,cordova,Javascript,Jquery,Html,Cordova,我有一个正常的js脚本,从我的项目开始就一直在工作。但是现在由于某种原因,当我点击按钮时,什么都不起作用,没有来自点击事件的响应(注意这曾经起作用),控制台日志中也没有显示任何内容,说明是否存在某种错误。。。剧本就是没有反应 以下是HTML: 以下是我的javascript: $(document).on('pageinit',“#sellbookpage”, 函数() { $(“#siginsubmit”)。单击 ( 函数() { 警惕(“你好”); } ); } ); 注意:我正
以下是我的javascript:
$(document).on('pageinit',“#sellbookpage”,
函数()
{
$(“#siginsubmit”)。单击
(
函数()
{
警惕(“你好”);
}
);
}
);
注意:我正在使用jQuery Mobile只有在使用jQuery Mobile时,
pageinit
事件才可用。你还在用那个吗?否则您应该使用$(document)。ready(…)
您尝试过使用live()吗
$(“#sellbookpage”).live('pageinit',function(){
$(“#siginsubmit”)。单击(函数(){
警惕(“你好”);
});
});
来自:
当提供选择器时,事件处理程序称为
委派。当事件直接发生在上时,不调用处理程序
绑定元素,但仅适用于
匹配选择器。jQuery将事件从事件目标向上冒泡
到处理程序所附加的元素(即,最内层到
最外层的元素),并为沿着该元素的任何元素运行处理程序
与选择器匹配的路径
siginsubmit
是一个输入
(它不能包含子元素,更不用说带有id=“sellbookpage”
的子元素了),因此选择器字符串与任何内容都不匹配,并且单击事件永远不会到达siginsubmit
输入
将其更改为:
$(document).on('pageinit', function () {
$('#siginsubmit').click(function (e) {
alert('hello');
e.preventDefault();
return false;
});
});
工作小提琴:我问题的得奖答案与上面提到的任何帖子都无关!导致问题的原因是我在使用jQuery mobile、jQuery和Twitter引导程序。当我注释掉引导css的链接后,一切都开始像以前一样工作了。因此,Twitters引导程序与jQuery或jQuery Mobile之间一定存在冲突。不应该是
$(document).on('pageinit',function(){…})代码>?为什么要在第二个参数中传递选择器?@nnnnnn请参见。@ajp15243-是的,我熟悉.on()
方法。我对委托的'pageinit'
事件的使用提出了质疑。@nnnnnn我现在明白你的意思了,那就继续吧。同意nnnnnn。在我看来,您传递给on事件的选择器导致了问题。如果您还提供包含该选择器的html,这将很有帮助。很抱歉,我正在使用jquery Mobile制作phonegap应用程序。我刚刚尝试了上面的代码,但仍然一无所获,有人对一些调试技术有什么建议来帮助您查找错误吗?如果您使用Firebug或其他调试器,在pageinit
处理程序中设置断点,以检查是否正在设置单击处理程序。请尝试将我上面的代码包装在$(function(){//code here;})中
将停止加载,直到文档不可读。如果您使用的jQuery版本低于1.7,则不应使用,因为它已被弃用。您应该改为使用(这是在jQuery 1.7中引入的)。除了@ajp15243所说的,您不应该使用.live()
,除非使用的版本早于1.4.3(因为从该版本开始,您应该使用.delegate()
;从1.7开始,您应该使用.on()
)。我已将您的代码复制粘贴到我的项目中,并确保我对所有其他出现的signinsubmit进行了注释,但仍然没有任何内容。。。它根本就不会触发。click()方法。。。叹息。。。注意,这是您从JSFIDLE获得的工作代码。不过还是非常感谢你的帮助