创建一个jquery函数,用自定义变量调用另一个预先存在的函数

时间:2012-01-11 16:05:13

标签: jquery function

我有这个功能

$(window).load(function() {
    $("#slider").carouFredSel({

        items: {
            visible: 1,
            width: "auto"
        },
        auto: false,
        scroll: {
            fx: "fade",
            duration: "1500"
        },
        prev: {
            button: ".prev",
            key: "left"
        },
        next: {
            button: ".next",
            key: "right"
        }
    });

    var ratio = 1;
        $(window).resize(function() {
        var s = $("#slider");
        s.add( s.parent() ).height( s.children().first().height() * ratio )
    });

    $("#slider").trigger("updateSizes");

});

我更改了默认值以自定义滑块。我正在使用一个调用HTML页面的导航菜单,就像这样。

$("#graphic").click(function() {
        $("#slider").fadeOut( 1000, function() {
            $("#slider").load("graphic.html", function() {
                $("#slider").fadeIn(1000, function() {
                    $("#slider").carouFredSel();
                });
            });
        });
    });

我的问题是,当我回想起.carouFredSel();时,我得到了它的默认设置。我想要做的是能够创建一个函数.mySlider(),用它的自定义变量读取上面的函数。

这有什么意义吗?

1 个答案:

答案 0 :(得分:1)

这可能不是关于创建另一个函数,但是关于您面临的问题,为什么不尝试将设置存储在变量中并在您调用.carouFredSel()的两个地方使用它。以下是我的意思:

var settings={

    items: {
        visible: 1,
        width: "auto"
    },
    auto: false,
    scroll: {
        fx: "fade",
        duration: "1500"
    },
    prev: {
        button: ".prev",
        key: "left"
    },
    next: {
        button: ".next",
        key: "right"
    }
}

在$(winodw).load()中使用如下:

$(window).load(function() {
$("#slider").carouFredSel(settings); //continue rest....

还有$(“#graphic”)。click()函数使用如下设置变量:

$("#graphic").click(function() {
    $("#slider").fadeOut( 1000, function() {
        $("#slider").load("graphic.html", function() {
            $("#slider").fadeIn(1000, function() {
                $("#slider").carouFredSel(settings);
            });
        });
    });
});

只需确保设置变量的范围正常,以便您可以在两个位置访问它。