为什么这个jQuery点击function不起作用?
码:
<script src="jquery-1.11.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $("#clicker").click(function () { alert("Hello!"); $(".hide_div").hide(); }); </script>
上面的代码不起作用。 当我点击#clicker时,它不会提醒,也不会隐藏。 我检查了控制台,我没有得到任何错误。 我也检查了JQuery是否加载,实际上是。 所以不知道是什么问题。 我也做了一个文档就绪function的警报,这样做不知道我做错了什么。 请帮忙。 谢谢!
你应该在$(document).ready(function() {});
添加javascript代码$(document).ready(function() {});
块。
即
$(document).ready(function() { $("#clicker").click(function () { alert("Hello!"); $(".hide_div").hide(); }); });
正如jQuery文档所述:“只有在文档已经准备就绪的情况下,页面才能被安全的处理。”jQuery为你检测到这个状态,包含在$( document ).ready()
只运行一次Document Object模型(DOM)准备好JavaScript代码来执行“
你的代码可以在没有document.ready()的情况下工作,只要确保脚本在#clicker之后。 结帐此演示: http : //jsbin.com/aPAsaZo/1/
准备好概念中的想法。 如果您确定您的脚本是您网页中的最新内容,或者它位于受影响的元素之后,则会起作用。
<!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <title>JS Bin</title> </head> <body> <script src="jquery-1.11.1.min.js" type="text/javascript"></script> <a href="#" id="clicker" value="Click Me!" >Click Me</a> <script type="text/javascript"> $("#clicker").click(function () { alert("Hello!"); $(".hide_div").hide(); }); </script> </body> </html>
我用$(document)使用ONfind了解决这个问题的最佳解决scheme。
$(document).on('click', '#yourid', function() { alert("hello"); });
为id开始看到如下:
$(document).on('click', 'div[id^="start"]', function() { alert ('hello'); });
终于在1周后,我不需要添加onclick triger。 我希望这会帮助很多人
尝试添加$(document).ready(function(){
到脚本的开头,然后});
。 另外, div
是否有正确的id,即作为一个id,而不是一个类,等等?
你必须用$(document).ready(function(){});
包装你的Javascript代码$(document).ready(function(){});
看这JSfiddle 。
JS代码:
$(document).ready(function() { $("#clicker").click(function () { alert("Hello!"); $(".hide_div").hide(); }); });
确保你的button上没有任何东西(例如div或者是一个透明的img),不能点击button。 这听起来很愚蠢,但有时候我们认为jQuery不工作,所有这些东西,问题在于DOM元素的定位。
只要快速检查一下,如果你使用的是像handlebars这样的客户端模板引擎,你的js会在document.ready之后加载,因此它不会绑定事件的元素,因此要么使用onclick处理函数,要么在body上使用它检查currentTarget
你可以使用$(function(){ // code });
当文档准备好执行该块内的代码时执行。
$(function(){ $('#clicker').click(function(){ alert('hey'); $('.hide_div').hide(); }); });