【发布时间】:2014-01-08 19:09:17
【问题描述】:
function changeColor() {
var $ = document.getElementById.bind(document);
var cp = $('colorPicker');
var ct = $('col_text');
var cmess = $('colorMsg');
var cpback = $('colorPicker_back');
var rap = $('wrap');
var newColor = cp.value;
//我想把上面的内容变成全局的……或者如果有另一种写法,我很乐意看到。 $('col_text').style.color = newColor;
if (newColor == "none") {
ct.innerHTML = "choose";
cpback.value = "salmon";
cmess.style.background = "#fff";
rap.style.background = "#ddd";
return this;
} else if (newColor == "yellow") {
ct.innerHTML = "yellow";
cpback.value = "salmon";
cmess.style.background = "salmon";
rap.style.background = "#ccc";
return this;
} else if (newColor == "red") {
ct.innerHTML = "red";
cpback.value = "yellow";
cmess.style.background = "yellow";
rap.style.background = "#eee";
return this;
} else if (newColor == "white") {
ct.innerHTML = "white";
cpback.value = "violet";
cmess.style.background = "violet";
rap.style.background = "#ea0";
return this;
}
}
function changeBack() {
var backgrnd = document.getElementById('colorPicker_back').value;
document.getElementById('colorMsg').style.background = backgrnd;
if (backgrnd == "none")
{
document.getElementById('col_text').style.color = "#000";
document.getElementById('col_text').innerHTML = "choose";
//document.getElementById('col_text').style.color="white";
return this;
} else if (backgrnd == "yellow")
{
document.getElementById('col_text').style.color = "red";
//document.getElementById('col_text').style.color="white";
return this;
} else {
document.getElementById('col_text').innerHTML = "choose";
return this;
}
}
//这需要简化,但我正在为如何做而苦苦挣扎。
【问题讨论】:
-
只要将它们移到你的函数之外,它们就会是全局的?
-
@JoeRinehart - 不完全是......执行 OP 在这里所做的事情是完全合理的,并使用
$作为类似功能的不同方法的简写。我并不是说这是一个好主意,因为它可能会使其他查看您的代码的人感到困惑,但它肯定不是不允许的。 -
嘿,我编辑了我的评论 - 我最初评论时没有看到 $ 的分配。
-
旁注:完全是迂腐的:jquery 是纯 javascript。
-
关于 jquery 的事情我只是说没有捷径。我拼命地试图掌握复杂的 OOP Javasript 编程,并且多年来我一直使用 Jquery 作为拐杖。我真的只是想深入了解并充分了解如何构建强大的对象......所以这是我学习的。感谢你们的帮助,我非常需要它。
标签: javascript function oop object