我的HTML模板中有一些按钮,它们使用了一些jquery的实现。代码如下:
// template
$('.myClass').click(()=>{
$('#myTarget').css('background-color','green');
});
// my work
$('#myId').click(()=>{
$('#myTarget').css('border','5px solid red');
});
#myTarget {
background-color: blue;
width: 100px;
height: 100px;
color: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="myTarget">Test</div>
<br />
<button id="myId" class="myClass">Change</button>
正如你所看到的,目标div会在它的边框和背景色上做一些改变,问题不是关于如何改变CSS属性的值,而是我想让jquery(我的作品)只执行自己创建的函数而不移除button元素的类或者移除jquery模板,所以当它点击的时候只有div的边框改变了。我怎么能让jquery优先级像这样呢?
谢谢。
2条答案
按热度按时间u1ehiz5o1#
您可以使用
.off()
删除当前附加到按钮的其他单击事件侦听器。5uzkadbs2#
您可以使用
not()
,它只适用于匹配的元素。下面是一个演示,只有当被点击的元素有
.myClass
但没有#myId
时,背景才会改变,只有当被点击的元素有#myId
时,边框才会改变。