.click没有注册更改的类
我正在尝试创建一个脚本,它将更改另一个元素的类以避免在新类下激活脚本,但是,它没有向脚本注册,脚本会考虑老班还在那里。.click没有注册更改的类
<script>
$(document).ready(function(){
$(".element1").click(function(){
$(".element1").addClass("clicked");
$(".element1").removeClass("element1");
});});
</script>
当前代码是以上我正在尝试实现。
试试这个,你可以通过使用特定元素的onclick来实现它。这里点击监听器在点击时绑定到文档中的“.element1”。
,如果你想执行一个click事件只有一次,那么你也可以使用.one()
$(".element1").one("click",function(){
<!-- your code here -->
});
$(document).ready(function() {
$(document).on("click", ".element1", function() {
console.log("click");
$(".element1").addClass("clicked");
$(".element1").removeClass("element1");
});
});
.element1 {
width: 100px;
height: 100px;
background-color: green;
}
.clicked {
width: 100px;
height: 100px;
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1" class="element1"></div>
这工作太, 谢谢。 –
如果要执行你的事件只是一个时间则u也可以使用。一()在更新 – vijay
同样的问题给你,有没有办法扭转这种脚本,并添加回“部件1”,同时取消对点击“点击”另一个元素如元素2并重复。 –
不喜欢这里这
$(document).ready(function() {
$(".element1").click(function() {
$(this).addClass("clicked").removeClass("element1");
});
});
注jquery method-chaining用来。你不需要选择元素多的时间来添加方法将其
我的解决方案是:在div
看到一个(点击),关(),上();在:
http://www.w3schools.com/jquery/event_one.asp
$(document).ready(function(){
$(".element1").one("click", function() {
console.log("is clicked");
$(".element1").addClass("clicked").removeClass("element1");
});
});
.element1{
background-color:red;
}
.clicked{
background-color:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="element1">hola</div>
这产生了和我一样的问题,当你点击div“clicked”时,它仍然认为你正在点击控制台中看到的element1。 –
@DanRoss编辑我的回答 – hubman
具有类element1
被绑定到的点击的元件(一个或多个)加载处理程序...
即使您从中删除类,它仍然绑定到事件处理程序。
正如你可以看到下面:
$(document).ready(function(){
$(".element1").click(function(){
console.log("click");
$(".element1").addClass("clicked");
$(".element1").removeClass("element1");
});
});
.element1{
color:blue;
}
.clicked{
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="element1">element 1</div>
我建议你使用off()
这样的:
感谢Dashtinejad为mentionning该.unbind()
被弃用的jQuery 3.0 ...工程一样。
$(document).ready(function(){
$(".element1").click(function(){
console.log("click");
$(this).off("click").addClass("clicked").removeClass("element1");
});
});
.element1{
color:blue;
}
.clicked{
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="element1">Element 1</div>
而且使用链接...
;)
从jQuery 3.0开始,'.unbind()'已被弃用。自从jQuery 1.7以来,它被'.off()'方法所取代,所以它的使用已经不受欢迎。 – dashtinejad
我有一个更新的,这肯定是你需要的一个http://*.com/questions/41413773/click-not-registering-changed-class/41413810#41413810 – vijay
好吧,问题,经过测试的一切,我想知道我如何才能扭转这种效应?当这个类被移除并被element1替换时,它仍然认为它是“被单击的”而不是element1。使用相同的代码没有工作,出于某种原因 –
什么连同它的HTML? – Jhecht
是的,请添加所需的代码 –
我已经为一个更新的,这肯定需要一个http://*.com/questions/41413773/click-not-registering-changed-class/41413810#41413810 – vijay