从JQuery调用函数 - 更好的方法

时间:2011-02-16 21:17:54

标签: javascript jquery

我想在窗口调整大小以及初始加载期间调用JQuery函数。我刚试过这个,我相信有更好的方法,请解释一下这个学习者,

$(document).ready(function () {
   $(function () {
     var doosomething = function () {
         $('#bottomDiv').css('top', $(window).height() - 105);
       }
       $(window).resize(doosomething);
     });
 });

3 个答案:

答案 0 :(得分:4)

尝试

$(document).ready(function () {
  var do_something = function () {
    $('#bottomDiv').css('top', $(window).height() - 105);
  }
  $(window).resize(do_something);
  do_something();
});

您对$(function () {的来电没有任何用处,因为它与$(document).ready(function () {完全相同。

答案 1 :(得分:3)

无需为此功能命名,以便您可以调用它。

你可以这样做:

$(function () {
  // -----------v-----------assign the handler
   $(window).resize(function () {
       $('#bottomDiv').css('top', $(window).height() - 105);
   }).resize();
});
  // ---^--- invoke the handler

答案 2 :(得分:0)

您可能会发现window.resize有时不可靠。不同的浏览器在不同的时间调用它。 (例如,您希望它“实时”发生还是在它们停止调整大小后发生?)

我建议使用: setInterval(doosomething, 500);

或类似的东西。你的代码很好,除了你不必要的嵌套之外。并且在调整大小之前不进行初始调用(如果这是你想做的事情)。

相关问题