Javascript 如何让此代码每隔单击一次就更改背景色?
提到的div标记是我添加到HTML文本中的唯一代码。如果可能,请在jquery中提供您的答案。 $(文档).ready(函数(){ $(“div”)。单击(funcOne(),funcTwo() 试试这个:Javascript 如何让此代码每隔单击一次就更改背景色?,javascript,jquery,Javascript,Jquery,提到的div标记是我添加到HTML文本中的唯一代码。如果可能,请在jquery中提供您的答案。 $(文档).ready(函数(){ $(“div”)。单击(funcOne(),funcTwo() 试试这个: <div id="co"> <!-- no onclick method needed --> <script> $(document).ready(function() { $("#co").click(function() {
<div id="co"> <!-- no onclick method needed -->
<script>
$(document).ready(function() {
$("#co").click(function() {
$("body").css("background-color","blue"); //edit, body must be in quotes!
});
});
</script>
$(文档).ready(函数(){
$(“#co”)。单击(函数(){
$(“body”).css(“背景色”,“蓝色”);//编辑,body必须在引号中!
});
});
你见过explorer事件监听器吗?我认为问题在于,toggle不像clic事件那样用于调用,它用于显示或隐藏dom中的元素。在较新的jQuery版本中
。toggle()
不能再用于切换两个回调函数。它被用作一个简单的.show()/.hide()
速记
使用Array.reverse()切换两种颜色:
有关切换两个功能的详细信息:回答“每隔单击一次”的问题
var divCount = 0;
$('div').click(function() {
divCount++;
if( divCount % 2 == 0) {
$(this).css('background-color', $(this).css('background-color') == 'blue' ? 'red' : 'blue' );
}
});
我不能给你JQuery,但我可以给你一个普通的解决方案:
var div = document.getElementsByTagName('div');
div.addEventListener('click', funcOne);
function funcOne(){
div.style.backgroundColor = "blue";
div.removeEventListener('click', funcOne);
div.addEventListener('click', funcTwo);
}
function funcTwo(){
div.style.backgroundColor = "red";
div.removeEventListener('click', funcTwo);
div.addEventListener('click', funcOne);
}
这个方法以前对我很有效,toggle()方法(我尝试过几次)有点失败。因此,将上面的方法转换为JQuery,然后按顺序运行两个(或更多)click()
如果希望仅在某些单击时更改颜色,请将事件侦听器添加/删除(在funcOne()中)放置在每次发生funcOne时都会迭代的计数器内。将计数器附加到变量,并且当计数器=N(其中N=单击中每个间隔的大小)时,更改事件侦听器并重置计数器。“纯jQuery”-现在这是一个短语。顺便说一句,因为事件处理已被弃用。由于这个问题,我失去了3天提问的权利。有人能告诉我如何更好地表达这一点,以便我不会再次被禁止吗?谢谢大家,你需要这样做更具描述性,并显示出自己在研究和解决问题上的更多努力。这个问题的答案可以通过阅读文档找到,而且很容易研究。你选择的答案的质量反映了这一点;它只是代码,不需要特别的研究或解释。如果你只是花更多的时间研究这些类型的问题(JavaScript、jQuery)对您来说是微不足道的。
var colors = ["blue", "red"];
$("div").click(function() {
$(this).css({ background : colors.reverse()[0] });
});
var divCount = 0;
$('div').click(function() {
divCount++;
if( divCount % 2 == 0) {
$(this).css('background-color', $(this).css('background-color') == 'blue' ? 'red' : 'blue' );
}
});
var div = document.getElementsByTagName('div');
div.addEventListener('click', funcOne);
function funcOne(){
div.style.backgroundColor = "blue";
div.removeEventListener('click', funcOne);
div.addEventListener('click', funcTwo);
}
function funcTwo(){
div.style.backgroundColor = "red";
div.removeEventListener('click', funcTwo);
div.addEventListener('click', funcOne);
}