通过引用传递呼叫作为按值调用

时间:2012-12-21 11:16:07

标签: javascript html

我一直在使用此代码将 ImageId 移至 jCrop

但是_ImageId变量是通过引用给出的。

如何按值将_ImageId变量提供给 jCrop

    var _ImageId = 0;

    $(document).ready(
    function(){    
        $('.page .image').attr("id", function(){  
        _ImageId = $(this).attr("id");
        return $(this).attr("id");
    }).Jcrop({
        ImageId : _ImageId,  // my problem is here , when _ImageId change , all of them will change 
        onSelect: Page_ImageSelected
    });      
}

2 个答案:

答案 0 :(得分:1)

你的代码有点......“很奇怪”。

也许你应该尝试这样的事情:

$(document).ready(function() {
    $('.page .image').each(function() {
        var element = $(this);
        element.Jcrop({
            ImageId : element.attr('id'),
            onSelect: Page_ImageSelected
        });
    });
}​);​

当您使用“简单”类型(如数字,整数,浮点数,字符串,布尔值等)时,Javascript使用“按值”调用...

这里的问题是你的代码。

答案 1 :(得分:0)

您已经执行按值传递_ImageIdJCrop方法将收到ImageId属性 {的对象{1}}(或0回调中指定的值),attr更改时不会更改。