嗨,大家好我有兩個JavaScript函數 - 第一個我必須將變量名從'element'和'property'更改爲'celement'和'cproperty'以避免它們發生衝突另一個功能。我想知道是否有任何方法來構造你的函數,以便它們可以使用相同的變量名稱?任何建議都會很棒!非常感謝在JavaScript函數中使變量私有
的Javascript:
function colorPickDynamic (startcolor, cp){
var i,
j,
x,
celement = []
cproperty = []
for (x=0, i = 2, j = 3; j <= arguments.length; i+=2, j+=2, x++) {
celement[x]=arguments[i]
cproperty[x]=arguments[j]
}
$(cp).ColorPicker({
color: startcolor,
onShow: function (colpkr) {
$(colpkr).fadeIn(500)
return false
},
onHide: function (colpkr) {
$(colpkr).fadeOut(500)
return false
},
onChange: function (hsb, hex, rgb) {
$(cp + ' div').css('backgroundColor', '#' + hex)
for (x = 0; x < celement.length; x++) {
updateAllCSS(celement[x], cproperty[x], '#' + hex)
}
}
})
}
var cssObject = {}
function updateAllCSS() {
var x,
i,
j,
k,
element = []
property = []
value = []
for (x=0, i = 0, j = 1, k = 2; k <= arguments.length; i+=3, j+=3, k+=3, x++) {
element[x]=arguments[i]
property[x]=arguments[j]
value[x]=arguments[k]
}
//updateThemeCreatorCSS
for (x = 0; x < element.length; x++) {
updateThemeCreatorCSS(element[x], property[x], value[x])
}
//updateOutputCSS
for (x = 0; x < element.length; x++) {
updateOutputCSS(element[x], property[x], value[x])
}
function updateThemeCreatorCSS(element, property, value) {
$('#homeIframe').contents().find(element).css(property, value)
$('#generalIframe').contents().find(element).css(property, value)
$('#formIframe').contents().find(element).css(property, value)
}
function updateOutputCSS(element, property, value) {
if (!cssObject[element]) cssObject[element] = {}
cssObject[element][property] = value
$('#css_output').text('')
for (var element in cssObject) {
$('#css_output').append(element + ' {')
var properties = cssObject[element]
for (var property in properties) {
$('#css_output').append(property + ': ' + properties[property] + ' !important;')
}
$('#css_output').append('} <br />')
}
}
}
爲了避免意外的全局其中在這裏你的問題,看看「嚴格模式」 –