如何正确运行我自己的jQuery函数?

时间:2010-02-06 19:59:46

标签: jquery function optional-parameters

我有这个代码正在改变图片和附加链接。

var imgSwap(pic, link){
    $("#sampleimg")
        .load(function () {   
           $(this).hide();
           $('#indexPic').removeClass('loading');
           $(this).fadeIn(500);
           })
        .error(function () {})
        .attr({src : picArray[5]});
    $("a.frontlink").attr("href", linkArray[0]);
    $('#indexPic').addClass('loading');
}

$("#arcade-button").click(function () { imgSwap(picArray[0], linkArray[0])});

当我在每个按钮之后运行井穴时,代码会起作用,但是当我尝试调用我自己的函数和可选参数时,代码不起作用。似乎无法找到这个缺陷......有点帮助吗?

2 个答案:

答案 0 :(得分:3)

尝试:

function imgSwap(pic, link){
    $("#sampleimg").load(function () {   
        $(this).hide();
        $('#indexPic').removeClass('loading');
        $(this).fadeIn(500);
    }).attr({src: pic});
    $("a.frontlink").attr("href", link);
    $('#indexPic').addClass('loading');
}

而不是

var imgSwap(pic, link){ /* further code */ }

另请注意,您为参数命名piclink,但在函数体中使用picArray[5]linkArray[0](因此对其进行了硬编码)。

如果您不希望发生任何事情,我认为您不必提供空错误功能。

答案 1 :(得分:0)

现在它在var中,如果你想自己调用它,你可能不得不把它称为实例化一个新对象ex:new imgSwap(pic,link);以另一种方式调用imgSwap(pic,link)将把它当成一个对象而不是执行里面的代码。

或者只是改变它就像@Felix所说的那样。