如果点击它,我需要通过元素上的css类在两个图标之间切换(在此示例中为颜色)。我有这个代码(不能正常工作):
$( ".play" ).on('click', function(event) {
event.preventDefault();
$(this).removeClass('play');
$(this).addClass('stop');
console.log('play');
});
$( ".stop" ).on('click', function(event) {
event.preventDefault();
alert();
$(this).removeClass('stop');
$(this).addClass('play');
console.log('stop');
});

.play {
background-color: black;
}
.stop {
background-color: green;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#" class="play" style="width:100px; height: 100px; display: block;"></a>
&#13;
答案 0 :(得分:2)
$( "a" ).on('click', function(event) {
event.preventDefault();
var anchor = $(this);
if(anchor.hasClass('play'))
{
$(this).removeClass('play');
$(this).addClass('stop');
console.log('play');
}
else
{
alert();
$(this).removeClass('stop');
$(this).addClass('play');
}
});
.play {
background-color: black;
}
.stop {
background-color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#" class="play" style="width:100px; height: 100px; display: block;"></a>
答案 1 :(得分:2)
您似乎正在使用jQuery的事件委派,但我认为您可能会有一点错误:
$("body")
.on("click", ".play", function(event) {
// change "play" to "stop"
})
.on("click", ".stop", function(event) {
// change "stop" to "play"
});
您希望将click
处理程序附加到<body>
标记,然后为jQuery提供事件名称,CSS选择器和事件处理程序。
答案 2 :(得分:1)
不要将事件处理程序绑定到类,将其绑定到元素的id。然后你可以看到元素有什么类并在它们之间切换。
HTML:
<a href="#" id="clickable" class="play" style="width:100px; height: 100px; display: block;"></a>
CSS:不会改变
JS:
$( "#clickable" ).on('click', function(event) {
if($(this).hasClass('play')) {
$(this).removeClass('play');
$(this).addClass('stop');
} else {
$(this).removeClass('stop');
$(this).addClass('play');
}
});
答案 3 :(得分:0)
一样容易.....
$( "a" ).on('click', function(event) {
event.preventDefault();
$(this).toggleClass('stop');
$(this).toggleClass('play');
});
&#13;
.play {
background-color: black;
}
.stop {
background-color: green;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#" class="play" style="width:100px; height: 100px; display: block;"></a>
&#13;
答案 4 :(得分:0)
或者您也可以这样做: -
的CSS:
.play {
background-color: black;
}
.stop {
background-color: green;
}
JS:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$(".play").on('click', function(event) {
if ($('a').hasClass('stop')) {
$(".play").addClass("play").removeClass("stop");
} else {
$(".play").addClass("stop");
}
console.log('play');
});
});
</script>
<a href="#" class="play" style="width:100px; height: 100px; display: block;"></a>
html和css保持不变。