jquery / javascript重新定义函数

时间:2012-02-07 00:50:41

标签: javascript jquery function redefine

自从我开设这个新的网上商店以供朋友推出以来,该网站仍在进行中, 我正在使用所谓的“jQuery fixedScroll”..

在线投放:http://www.merkversterkers.com/klanten/fragma/index.php?p=shop

一切都很好,直到这个.. 当我使用scrollplugin时,它定义了页面的高度,这是一件好事......

按下“过滤器”按钮后,必须预先确定高度,导致将展开的div,我无法这样做,因为文档定义了加载时的高度。

喜欢“$(document).ready”函数

scrollfunction

$('#scart').scrollToFixed({
   marginTop: $('.topbar').outerHeight() + 30,
   limit: get_limit(),
   zIndex: 999
});

get_limit功能

function get_limit(){
    var products_row = 4;

    var topbar = $(".topbar").height() + 30 
    var filterbar = $(".filterbar").height();
    var products = products_row * 206;

    if( $(".filterexpanded").css('display') == "block" ){
        var expanded = $(".filterexpanded").height(); 
    } else {
        var expanded = 0;
    }   

    var cartheight = $("#scart").height();

    var limit = topbar + filterbar + expanded + products + 130 - cartheight;

    return limit;
}

有人可以给我一些我可以尝试的代码吗? 我真的很感激所有的帮助......

3 个答案:

答案 0 :(得分:1)

如果不解读这个问题,你应该改变这个:

limit: get_limit(),

对此:

limit: get_limit,

答案 1 :(得分:1)

当您尝试将函数设置为对象中的值时,不应使用括号。当你这样做时,你基本上是在评估函数,它的值将被返回而不是实际的函数。

var myObject = {
    myFunction: funkyFunk()
};

function funkyFunc(){
    var funkierFunction(){
        // You COULD do this
    };
    return funkierFunction;
}

但这就是你需要的......

var myObject = {
    myFunction: funkyFunk
};

function funkyFunc(){
    // You probably want this though    
}

答案 2 :(得分:0)

查看plugin's source后的一个(未经测试的)想法:

var scrollToFixedObj = $('#scart').data("ScrollToFixed");
scrollToFixedObj.options.marginTop = get_limit();