Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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 为什么这个jQuery单击函数不起作用?_Javascript_Jquery_Onclick_Click_Onclicklistener_Jsbin - Fatal编程技术网

Javascript 为什么这个jQuery单击函数不起作用?

Javascript 为什么这个jQuery单击函数不起作用?,javascript,jquery,onclick,click,onclicklistener,jsbin,Javascript,Jquery,Onclick,Click,Onclicklistener,Jsbin,代码: $(“#clicker”)。单击(函数(){ 警惕(“你好!”); $(“.hide_div”).hide(); }); 上面的代码不起作用。当我单击#clicker时,它不会发出警报,也不会隐藏。我检查了控制台,没有发现任何错误。我还检查了JQuery是否正在加载,事实上确实如此。所以我不确定问题是什么。我还做了一个带有警报的文档准备功能,它工作得很好,我不确定我做错了什么。请帮忙。谢谢 尝试添加$(document).ready(函数(){到脚本开头,然后添加})。另外,div中

代码:


$(“#clicker”)。单击(函数(){
警惕(“你好!”);
$(“.hide_div”).hide();
});

上面的代码不起作用。当我单击#clicker时,它不会发出警报,也不会隐藏。我检查了控制台,没有发现任何错误。我还检查了JQuery是否正在加载,事实上确实如此。所以我不确定问题是什么。我还做了一个带有警报的文档准备功能,它工作得很好,我不确定我做错了什么。请帮忙。谢谢

尝试添加
$(document).ready(函数(){
到脚本开头,然后添加
})。另外,
div
中的id是否正确,即作为id,而不是类,等等?

您应该在
$(document.ready(function(){})中添加javascript代码

i、 e


As声明:“在文档“就绪”之前,无法安全地操作页面。jQuery会检测到这种就绪状态。包含在$(文档)中的代码。ready()仅在页面文档对象模型(DOM)准备好让JavaScript代码执行后才会运行”

您必须用$(文档)包装JavaScript代码.ready(函数(){})看这个

JS代码:

$(document).ready(function() {
  $("#clicker").click(function () {
    alert("Hello!");
    $(".hide_div").hide();
  });
});

如果没有document.ready(),代码可能会正常工作。请确保脚本位于#clicker之后。签出此演示:

这个想法是现成的概念。如果您确定您的脚本是页面中最新的内容,或者在受影响的元素之后,它将正常工作

$(document).ready(function() {

    $("#clicker").click(function () {
        alert("Hello!");
        $(".hide_div").hide();    
    });
});

JS-Bin
$(“#clicker”)。单击(函数(){
警惕(“你好!”);
$(“.hide_div”).hide();
});
注意:
在演示中,将代码中的
http
替换为
https
,或者使用此变体确保按钮上没有任何东西(例如div或trasparent img)阻止单击按钮。
这听起来很愚蠢,但有时我们认为jQuery不起作用,所有这些东西和问题都在DOM元素的定位上

我通过使用ON with$(document)找到了这个问题的最佳解决方案

有关id开头的信息,请参见以下内容:

 $(document).on('click', '#yourid', function() { alert("hello"); });
最后,1周后,我不需要添加onclick触发器。
我希望这将帮助许多人

只是一个快速检查,如果您使用客户端模板引擎(如Handlebar),您的js将在document.ready之后加载,因此没有元素可以绑定事件,因此可以使用onclick处理程序或在主体上使用它并检查当前目标

您可以使用
$(function(){//code});
当文档准备好在该块中执行代码时执行

$(document).on('click', 'div[id^="start"]', function() {
alert ('hello'); });
正确的浏览器重新加载 如果单独保存js文件,请快速检查:确保正确重新加载资源。浏览器通常会缓存文件,因此只需确保在加载的资源中更正以前的键入错误即可


请参阅Chrome/Chrome中有关永久缓存禁用的信息。否则,您通常可以按中所述使用Ctrl+F5或Shift+F5强制完全重新加载。

将代码包装到文档中。readydid u检查浏览器控制台是否存在任何错误、语法或未找到文件或其他内容?可能重复我的愚蠢程度!!仍在学习中。I th“我是否应该单击”功能不需要它,因为它是在单击时激活的,而“文档准备就绪”是在页面加载时激活的。@星巴克不用太担心,每个人都会犯错误,尤其是在学习时:)文档准备就绪功能根据它在页面上找到的内容设置侦听器。如果不这样做,它们永远不会被设置。但是,最好的方法是使用“on()”函数来委托它们。这样,加载后添加到页面中的任何元素仍然可以工作!另外,使用“on”函数,实际上不需要使用document ready函数。它将侦听器设置为文档级别,然后刮取页面以获取要侦听的元素。这就是为什么更具体地说明要侦听的元素类型会更快一些,例如“div.listentome”而不是“.listentome”。在本例中,它不检查“listentome”类的每个元素,而只检查div。@SeanKendle-这不是
.on()
的工作方式。您可以(可选)使用它创建委托处理程序,但无论哪种方式,它都不会“刮页面”,而是将侦听器绑定到特定元素在jQuery对象中调用它。+1-您的答案解释了为什么需要
document.ready()
函数。这是一个更好的答案,因为关于jQuery脚本必须位于“document.ready()”函数中的建议是误导性的。是的,这样更安全,但是如果您为jQuery函数动态设置html元素(例如,根据单击的按钮查询表行),它需要在该函数之外/之后。我错误地更改了弹出式覆盖图的目标div的名称,然后花了几个令人沮丧的小时寻找脚本错误。吸取了重要的教训。这是一个错误的答案,因为JS代码应该在DOM的头部,而不是内联。事实上,您花了几个小时寻找e脚本错误不是JS的问题,是您没有正确阅读文档和不知道如何使用调试工具的问题。@AndreyShipilov说过,只需查看此页面的源代码并深入页面底部,您就会在那里看到javascript代码。@AndreyShipilov-您知道如何使用调试工具来解决此问题吗?请与他人分享你的知识,而不是冒犯他们。尽量做到有建设性和公平。啊,谢谢,以上这些对我不起作用,但这确实起了作用!(可能是一些与角度和路线的奇怪互动)和Flink一样,我也解决了这个问题。谢谢..100 upvote..它被称为委派,是动态插入或移动内容所必需的,例如z-I
 $(document).on('click', '#yourid', function() { alert("hello"); });
$(document).on('click', 'div[id^="start"]', function() {
alert ('hello'); });
$(function(){
    $('#clicker').click(function(){
        alert('hey');
        $('.hide_div').hide();
    });
});