【问题标题】:taking flexible arguments in javascript?在 javascript 中采用灵活的参数?
【发布时间】:2012-09-03 14:28:32
【问题描述】:

我正在尝试在 javascript 中采用灵活的参数来使用 eyecon colorpicker (www.eyecon.ro/colorpicker/) 来操纵颜色

但是当我尝试更改页面颜色时,页面会挂起,是否卡在 arguments.length 循环中?

html 是:

<div class="colorSelector" id="colorSelector3"><div style="background-color: #0000ff"></div></div>

jquery/javascript 是:

$('#colorSelector3').click(function(){
colorPickDynamic('#colorSelector3','h1','color');
});


function colorPickDynamic(cp){

var i;
var j;

for (x=0, i = 1, j = 2; j < arguments.length; i+2, j+2, x++) {

var tag = [];
var colorProperty = [];
tag[x]=arguments[i];
colorProperty[x]=arguments[j];
}

$(cp).ColorPicker({
    color: '#0000ff',
    onShow: function (colpkr) {
        $(colpkr).fadeIn(500);
        return false;
    },
    onHide: function (colpkr) {
        $(colpkr).fadeOut(500);
        return false;
    },
    onChange: function (hsb, hex, rgb) {

                            $(tag[0]).css(colorProperty[0], '#' + hex);

        $(cp + ' div').css('backgroundColor', '#' + hex);
    }
});
}

任何帮助都会很棒!谢谢

【问题讨论】:

  • 您能否更明确地定义您希望colorPickDynamic 的方法签名是什么。换句话说,每个参数或参数列表应该代表什么?
  • arguments[0], arguments[1]...arguments.length 也有
  • 请注意,“arguments”不是一个真正的数组,如果可以的话,只是一种解决方法

标签: javascript jquery argument-passing


【解决方案1】:

你有一个无限循环,你永远不会递增j

j+2 应该是j+=2i+2 应该是i+=2

【讨论】:

  • 我真傻,从 c 切换到 javascript 我变得不那么专心了!等我回到电脑前试试这个,谢谢!
  • 嗯,它仍然停留在 j+=2 和 i+=2 的循环中?逻辑错了吗?
猜你喜欢
  • 1970-01-01
  • 2012-01-21
  • 2015-02-01
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
相关资源
最近更新 更多