使用jQuery.live()更改事件执行顺序

时间:2010-12-20 14:50:38

标签: jquery

我有以下代码:

<html>
<head>
 <script src="myplugin.js" />
 <script>
  $(document).ready(function() {
   $('#mytable tbody tr').live('click', function() {
    alert('Hi');
   });
  });
 </script>
</head>
<body>
 <script>
  $('#mytable').myplugin();
 </script>

 <table id="mytable">
  <tbody>
   <tr>
    <td>Something</td>
   </tr>
  </tbody>
 </table>
</body>
</html>

myplugin.js code

.....
return this.each(function(index, id) {
 $(id + ' tbody tr').live('click', function() {
  alert('Hello');
 });
});
.....

在这种情况下,执行的顺序是:

alert('Hi');
alert('Hello');

但我想反过来。 可以改变执行顺序吗? 谢谢

2 个答案:

答案 0 :(得分:0)

这不是最漂亮的方式,但你可以推迟你的第一个电话:

  $(document).ready(function() {
   $('#mytable tbody tr').live('click', function() {
    window.setTimeout(function() {
      alert('Hi');
    }, 0);
   });
  });

但也许有一种“官方”方式......

答案 1 :(得分:0)

您应该交换脚本的顺序。