1

我的页面中有 javascript,我在那里使用了 click 事件。问题是,在 ie 中,点击不会立即发生,但只有在 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 中这有效!

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

4

2 回答 2

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);
    });

希望它有帮助, 坎普斯

于 2012-10-03T13:39:38.553 回答
0

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

于 2012-10-03T13:27:14.417 回答