你如何重用Javascript脚本?

时间:2014-04-01 08:30:41

标签: javascript

我有一个计算脚本,可以在页面加载时执行,也可以在窗口调整大小时执行。中间的代码完全相同;没有重复使用。

所以我想知道,不是,但是如何重新使用Javascript代码?

我尝试了一些东西,比如下一件,但那不起作用。

$(function reUse() {
    alert('Either the page got resized or the page loaded!');
    console.log('Either the page got resized or the page loaded!');
});

$(window).resize(function() {
    reUse();
});

那么格式化的正确方法应该是什么?

4 个答案:

答案 0 :(得分:2)

你应该将函数放在闭包之外。您现在将该函数添加为jQuery对象。要走的路是:

var reUse = function() {
    alert('Either the page got resized or the page loaded!');
    console.log('Either the page got resized or the page loaded!');
};

$(window).resize(function() {
    reUse();
});

并且你想把它全部包装在一个闭包中:

jQuery(document).ready(function($) {
    // the code above
});

答案 1 :(得分:2)

您缺少一些括号等,您只能触发事件处理程序

$(function() {
    function reUse() {
        alert('Either the page got resized or the page loaded!');
        console.log('Either the page got resized or the page loaded!');
    }

    $(window).on('resize', reUse).trigger('resize');
});

答案 2 :(得分:1)

像这样写

function reUse() {
    alert('Either the page got resized or the page loaded!');
    console.log('Either the page got resized or the page loaded!');
}

$(window).resize(reUse);

答案 3 :(得分:1)

尝试在您的范围内将其设为全局:

var reUse;
$(reUse = function reUse() {
    alert('Either the page got resized or the page loaded!');
    console.log('Either the page got resized or the page loaded!');
});

$(window).resize(function() {
    reUse();
});

或第二次使用,如果您没有任何特殊参数传递给您的功能:

$(window).resize(reUse);