jQuery keyup事件没有立即执行

时间:2013-03-27 10:52:57

标签: javascript jquery keyboard-events

我有以下小jQuery脚本:

      $("#content").on("keyup", "#ID1", function() {
        $("#ID2").load("loadText", resizeResult());
      });

      function resizeResult() {
        if($("#ID2").height() != $("#ID3").height()){
          $("#ID3").animate({
            height: $("#ID2").height()
          }, 800);
        }
      }

我现在的问题是调整大小功能只会由 NEXT“keyup”事件执行,但是当“加载”时,我希望立即 ID2 已完成。

3 个答案:

答案 0 :(得分:0)

在keyupfunction结束时调用resizeResult()

$("#content").on("keyup", "#ID1", function() {
       ..................

       resizeResult();
      });

答案 1 :(得分:0)

在document.ready中调用你的加载函数..

$(function(){
   $("#ID2").load("loadText", resizeResult());  //<-- call load function in document ready and in keyup function..
   $("#content").on("keyup", "#ID1", function() {
      $("#ID2").load("loadText", resizeResult());
   })
   .....
});

请确保你的网址是正确的路径... loadText似乎不是一个正确的路径

答案 2 :(得分:0)

代码中的一切都很好看。但是你需要在事件中留下resizeResult函数的括号。因为您不希望它在浏览器执行脚本时立即调用。只有在事件被触发时才需要它。因此,您应该将代码更改为此(以及我的本地常见事件,建议使用jQuery):

$("#content").keyup(function() {
   $("#ID2").load("loadText", resizeResult);
});

function resizeResult() {
   if($("#ID2").height() != $("#ID3").height()){
      $("#ID3").animate({
         height: $("#ID2").height()
      }, 800);
   }
}

为了安全执行,最好等到html完全加载或加载此html标记(ID3容器后面的javascript代码)。第一种方法可以使用jQuery中的$.document.ready来完成。