代码:
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript">
$("#clicker").click(function () {
alert("Hello!");
$(".hide_div").hide();
});
</script>
上述代码不起作用。当我点击#clicker时,它不会发出警报,也不会隐藏。我检查了控制台,没有错误。我还检查了JQuery是否正在加载,确实是。所以不确定问题是什么。我还做了一个带有警报的文件就绪功能,这样做不能确定我做错了什么。请帮忙。谢谢!
答案 0 :(得分:160)
您应该在$(document).ready(function() {});
块中添加javascript代码。
即
$(document).ready(function() {
$("#clicker").click(function () {
alert("Hello!");
$(".hide_div").hide();
});
});
正如jQuery documentation所述:“在文档”准备好“之前,页面无法安全操作.jQuery会为您检测到这种状态。$( document ).ready()
中包含的代码只会运行一次页面文档对象模型(DOM)已准备好让JavaScript代码执行“
答案 1 :(得分:43)
我通过在$(文档)中使用ON找到了解决此问题的最佳解决方案。
$(document).on('click', '#yourid', function() { alert("hello"); });
用于id开头,见下文:
$(document).on('click', 'div[id^="start"]', function() {
alert ('hello'); });
最后一周后我不需要添加onclick triger。 我希望这能帮助很多人
答案 2 :(得分:21)
您的代码可以在没有document.ready()的情况下工作,只需确保您的脚本位于#clicker之后。查看此演示:http://jsbin.com/aPAsaZo/1/
准备概念中的想法。如果您确定您的脚本是页面中的最新内容,或者它位于受影响的元素之后,它将起作用。
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-latest.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>
答案 3 :(得分:6)
你必须用$(document).ready(function(){});
包装你的Javascript代码看看JSfiddle。
JS代码:
$(document).ready(function() {
$("#clicker").click(function () {
alert("Hello!");
$(".hide_div").hide();
});
});
答案 4 :(得分:5)
尝试将$(document).ready(function(){
添加到脚本的开头,然后});
。另外,div
是否正确地包含了id,即作为id,而不是类等?
答案 5 :(得分:3)
确保按钮上没有任何内容(例如div或trasparent img),不要点击按钮。 这听起来很愚蠢,但有时我们认为jQuery不起作用而且所有这些东西都存在,而问题在于DOM元素的定位。
答案 6 :(得分:3)
您可以使用在文档准备好执行该块内的代码时执行的$(function(){ // code });
。
$(function(){
$('#clicker').click(function(){
alert('hey');
$('.hide_div').hide();
});
});
答案 7 :(得分:2)
只需快速检查一下,如果你使用的是客户端模板引擎,比如把手,你的js将在document.ready之后加载,因此没有元素可以将事件绑定到,因此要么使用onclick处理程序,要么使用它在身体上并检查当前目标
答案 8 :(得分:0)
如果您单独保存 js 文件,也只需快速检查一下:确保正确重新加载您的资源。浏览器通常会缓存文件,因此只需确保您加载的资源中更正了以前的拼写错误。
有关在 Chrome/Chromium 中永久禁用缓存的信息,请参阅 this answer。否则,您通常可以使用 Ctrl+F5 或 Shift+F5 强制完全重新加载,如{{3 }}。