Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .click()在使用jQuery时不工作_Javascript_Jquery_Html_Cordova - Fatal编程技术网

Javascript .click()在使用jQuery时不工作

Javascript .click()在使用jQuery时不工作,javascript,jquery,html,cordova,Javascript,Jquery,Html,Cordova,我有一个正常的js脚本,从我的项目开始就一直在工作。但是现在由于某种原因,当我点击按钮时,什么都不起作用,没有来自点击事件的响应(注意这曾经起作用),控制台日志中也没有显示任何内容,说明是否存在某种错误。。。剧本就是没有反应 以下是HTML: 以下是我的javascript: $(document).on('pageinit',“#sellbookpage”, 函数() { $(“#siginsubmit”)。单击 ( 函数() { 警惕(“你好”); } ); } ); 注意:我正

我有一个正常的js脚本,从我的项目开始就一直在工作。但是现在由于某种原因,当我点击按钮时,什么都不起作用,没有来自点击事件的响应(注意这曾经起作用),控制台日志中也没有显示任何内容,说明是否存在某种错误。。。剧本就是没有反应

以下是HTML:


以下是我的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获得的工作代码。不过还是非常感谢你的帮助