试图使用在代码的其他部分的函数中创建的变量

时间:2013-10-08 08:34:25

标签: javascript jquery html css

我试图返回一个在jQuery中的resize事件的参数中的函数内部生成的变量。每次用户调整页面大小时都应更新变量。我想使用变量来设置div的宽度('.slide')。因此,每次用户调整浏览器大小时,我都希望.slide元素具有浏览器的宽度。

$(window).resize(function(){
        var windowwidth = $(window).outerWidth();
        return windowwidth;
    }) 

我想使用windowwidth

//To make each slide the width of the window 
var slideWidth = $('.slide').css("width", windowwidth)

我将在这里使用slideWidth

$('.slide').css('width', slideWidth);

我可能想要使用windowwidth其他地方

我尝试使用宽度100%,但我无法浮动100%的左图像。我试图制作一个占据整个页面宽度的幻灯片。

Broken fiddle

伙计们感谢您的答案,但我看到的一些内容并没有证明我如何在代码的其他部分使用宽度。你只显示调整大小部分。但还有另一部分,moveSlide()在大多数答案中都没有获得宽度。到目前为止,大多数答案中都没有看到它的可重用性。

7 个答案:

答案 0 :(得分:1)

您必须在全球范围内windowwidth

var windowwidth=$(window).outerWidth();
$(window).resize(function(){
    windowwidth = $(window).outerWidth();
    //return windowwidth;
    demo();
});
function demo()
{
    var slideWidth = $('.slide').css("width", windowwidth)
    slides.wrapAll('<div id = "slideHolder"></div>')
    slides.css({"float" : "left"});
    // var bodywidth = $('body').outerWidth();
    // var windowwidth = $(window).outerWidth()
    $('.slide').css('width', slideWidth);
    $("#slideHolder").css("width", slideWidth * numberOfSlides );
}
demo();

Working fiddle

答案 1 :(得分:1)

以下是您要查找的内容,您无需在全球范围内声明slideWidth。使用$(window).width()在调整大小时查找当前窗口宽度。工作fiddle

答案 2 :(得分:0)

$(window).resize(function(){
    var windowwidth = $(window).outerWidth();
    return windowwidth;
}) 

这里windowwidth将在函数范围内,然后返回值。

它没有将其设置在其他地方访问的全局范围内。

你可以尝试

window.windowwidth =  $(window).outerWidth();

将其纳入全球范围

答案 3 :(得分:0)

只是创建一个全局变量,而不是在函数内部创建一个局部变量!

或者您可以使用localStorage来保存如下所示的宽度: -

$.localStorage( 'foo', {data:'bar'} );

$.localStorage( 'foo' );

答案 4 :(得分:0)

working Fiddle

$(document).ready(function(){
  var windowwidth = $(window).outerWidth();

您必须将变量windowwidth设为全局变量,并使用$(document).ready函数中的实际窗口对其进行初始化。 请注意,您必须在var函数中删除窗口前面的$(window).resize。否则你在那里使用一个局部变量,不能在函数外部使用。

答案 5 :(得分:0)

您声明windowWidth属于函数范围,然后您尝试在全局范围内访问它,这将无效。您必须在全局范围内声明windowWidth并在函数中使用它。

我还必须对slideWidth做同样的事情才能使你的演示工作,你可以在这里看到它:

JSFiddle Demo

答案 6 :(得分:0)

只需在全局范围内声明您的变量

var windowwidth=0;

$(window).resize(function(){
        windowwidth = $(window).outerWidth();
        return windowwidth;
    })