只有在javascript完全驱动后才会发生Javascript点击事件

时间:2012-10-03 12:36:35

标签: javascript internet-explorer click

我的页面中有javascript,我在那里使用click事件。问题是,即点击不会马上开始,但只有在洞穴javascript完成后才会出现。 然后它会触发该点击事件!

我需要立即开始,之前其他javascript代码!

$(document).ready(function() { 
    // sorting the list
    var myLink = document.getElementById('header3');
    myLink.click();

    // scrolling the list to where the modified row is
    if ('${rowId}') {
        var row = $('#row-${rowId}');
        row.addClass("highlight");

        var scrollParent = ((jQuery.browser.msie) ? row.parent().parent().parent()[0] : row.parent()[0]);
        row[0].scrollIntoView(false);
        if (scrollParent.scrollTop > 0)
            scrollParent.scrollTop = scrollParent.scrollTop + (scrollParent.clientHeight / 2);
    }
}

在滚动之前应该进行排序!即,点击滚动后发生,然后滚动位置错误。 在Firefox中,这有效!

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

假设(从来不是一件好事)在click事件代码之前执行的代码是你在click()调用下面输入的代码,为什么不将它重构为函数并使其成为一部分调用click()代码时发生的代码?

答案 1 :(得分:0)

试试这个。将代码放在单独的函数中,并在单击中触发该函数。

 $(function(){
  function yourfunction(event) 
{

       //code to be executed after the click
       // scrolling the list to where the modified row is
      if ('${rowId}') {
                            var row = $('#row-${rowId}');
                            row.addClass("highlight");
                            var scrollParent = ((jQuery.browser.msie) ? row.parent().parent().parent()[0] : row.parent()[0]);
                             row[0].scrollIntoView(false);
                           if (scrollParent.scrollTop > 0)
                           scrollParent.scrollTop = scrollParent.scrollTop + (scrollParent.clientHeight / 2);
                      }

   return false;
  }

  });

   $(document).ready(function() { 
         // sorting the list
         $('#header3').click(yourfunction);
    });

希望它有所帮助, Cumps