【发布时间】:2018-09-09 11:53:16
【问题描述】:
现在已经考虑了好几个小时,但无法提出解决方案。我有大约 5 个具有同一类的 div:<div contenteditable="true" class="change">
当我点击一个 div 时,第一个函数使背景颜色变为白色。 当我离开 div 时,我希望根据我在 div 中写入的内容来改变颜色。
好消息是颜色会发生变化。 不好的是,当我之后单击其他 div 并离开它们时,它们会收到与第一个 div 相同的颜色。不管我什么都不写,或者我写“是”、“否”或“可能”,当我离开它们时,以下 div 仍然会得到与第一个 div 相同的颜色
帮助! :(
$(".change").focus(function() {
var message = document.querySelector(".change").innerHTML;
this.style.backgroundColor=("white");
});
$((".change") ).focusout(function() {
var message = document.querySelector(".change").innerHTML;
console.log(message);
switch (message) {
case 'yes':
this.style.backgroundColor=("green");
break;
case 'no':
this.style.backgroundColor=("red");
break;
case 'maybe':
this.style.backgroundColor=("yellow");
break;
default:
this.style.backgroundColor=("white");
break;
}
});
【问题讨论】:
-
一方面,您的代码有语法错误。
focusout回调和switch块都不会关闭。此外,您还有一些不必要(尽管无害)的括号,例如("white").
标签: javascript jquery-selectors this contenteditable