我试图将一个类添加到一个被点击的div它似乎什么也没做?这是我的jquery
$("#dropdown-nav").click(function () {
this.addClass('open');
console.log('test');
});
Run Code Online (Sandbox Code Playgroud)
你有一个明确的问题,由之前的答案标记,以及一个潜在的问题(你对Abinash的评论表明他做了他的建议,这解决了第一个问题,并没有使它工作).
问题A:addClass是jQuery对象的方法,而不是DOM元素,但在click回调中this是指DOM元素.要将其包装在jQuery对象中,请使用$(this)或jQuery(this)(在noConflict模式下).请参阅以前的答案.
问题B:如果仅靠这一点无法解决问题,那么最有可能的是,dropdown-nav当您运行代码连接click处理程序时,该元素尚不存在.有两种方法可以确保它存在:
将script包含连接代码的标记放在HTML文件中的元素下面.通常,最好将脚本放在最后,就在结束</body>标记之前.要么,
使用jQuery的ready回调.
如果那些解决不了,其他可能的解释是:
id你认为它有(dropdown-nav)click事件,并在代码看到之前停止事件这是一个解决这两个问题的例子,使用问题B的解决方案#1:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<style>
.open {
color: blue;
}
</style>
</head>
<body>
<div id="dropdown-nav">Drop-down nav</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
// Note that this is BELOW the element in the HTML, so the element exists
$("#dropdown-nav").click(function() {
$(this).addClass("open");
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)