jQuery窗口调整大小错误

时间:2016-09-01 12:19:03

标签: jquery console.log window-resize jquery-events

当我使用$(窗口).resize()

时,我在控制台中收到错误

我已经创建了一支笔来说明正在发生的事情:http://codepen.io/anon/pen/LRYGxK?editors=1111

var bg = $('.inner');
$(window).resize('resizeBackground');

function resizeBackground() {
    bg.height($(window).height() + 60);
    console.log(bg.height());
}
resizeBackground();

我在控制台中遇到的错误是:

未捕获的TypeError:((n.event.special [g.origType] ||(中间值))。handle || g.handler).apply不是函数

不确定我说错的地方是诚实的。

4 个答案:

答案 0 :(得分:1)

您可以在调整大小窗口时调用resizeBackground函数,如下所示。

$(window).resize(function resizeBackground() {
    bg.height($(window).height() + 60);
    console.log(bg.height()); 
 });

工作演示link

答案 1 :(得分:0)

你的问题就像这个一样简单

('resizeBackground')

正在传递一个字符串 -

只需传递功能

(resizeBackground)

见这里:http://codepen.io/alexjamesbrown/pen/yaLZzj

完整示例

var bg = $('.inner');
$(window).resize(resizeBackground);

function resizeBackground() {
    bg.height($(window).height() + 60);
    console.log(bg.height());
}
resizeBackground();

为了简化它,你可以试试这个:

http://codepen.io/alexjamesbrown/pen/pEogAL

var bg = $('.inner');
$(window).resize(function(){
    bg.height($(window).height() + 60);
    console.log(bg.height());
});

答案 2 :(得分:0)

$(window).resize()调用需要一个处理函数 - Function(Event eventObject)。

像那样使用

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

https://api.jquery.com/resize/

答案 3 :(得分:0)

如何尝试像bofore这样的代码:

var bg = $('.inner');

// If you want that in load (just for explanation)
$(document).ready(function() {
  resizeBackground();
});
// On window resize
$(window).resize(function() {
  resizeBackground();
});

// Generic function, called by the callbacks..
function resizeBackground() {
    bg.height($(window).height() + 60);
    console.log(bg.height());
}
<script   src="https://code.jquery.com/jquery-2.2.4.min.js"   integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="   crossorigin="anonymous"></script>

<div class="inner"></div>

这样你就可以在“.resize()”回调语法中调用你创建的函数。

您可以在官方jQuery调整大小文档中获得更多信息:https://api.jquery.com/resize/