2012-06-26 27 views
0

我疑惑以下的执行顺序:意外的页面事件执行顺序

$('#home').live('pageinit',function(){ 
    $('#test').hide(); 

    $(function() { 
     alert('test1'); 
    }); 

    $('#button').click(function(event) { 
     event.preventDefault(); 
    }); 
}); 

$('#home').live('pageshow',function(){ 
    alert('test3'); 
}); 

这里是序列:

  1. pageinit被炒鱿鱼
  2. $('#test').hide()执行
  3. $('#button').click()...执行
  4. pageshowalert('test3')熄灭为什么作为3号是不是alert('test1')执行
  5. alert('test1')被激发

感谢

回答

1

我不知道任何错字是否存在的代码,但它应该给你在检查元素或开发者控制台中的错误。尝试封闭功能是这样的:

(function() { 
    alert('test1'); 
})(); 

入住这fiddle完整的源

+0

是的,那些是错别字(现已修复)。实际的代码是正确的,但有趣的序列问题。 – chris

+0

你有没有检查小提琴,序列的工作原理如你所说在小提琴 – dhaval

+0

它就像你说的那样工作!那么使用'$(function(){})是什么问题;'而不是?什么是“延迟”执行的机制? – chris