2010-08-07 74 views
0

这是我的javascript: -jQuery的标签ajax的问题​​

<script type ="text/javascript"> 
    $(function() 
    { 
$("#tabs").tabs({ cache: true ,fx: { opacity: 'toggle' }}); 


    }); 

</script> 

这是我的HTML中使用AJAX,它加载php文件: -

<ul> 
      <li><a href="#tab1">General</a></li> 
      <li><a href="<?php echo base_url() . 'Admin/Messages.php' ?>">Messages</a></li> 
      <li><a href="<?php echo base_url() . 'Admin/Pics.php' ?>">Pics</a></li> 
      <li><a href="<?php echo base_url() . 'Admin/Facilities.php' ?>">Facilities</a></li> 

     </ul> 

我想知道的问题是,当Messages.php是装javascript onload事件会触发吗?我想知道,因为我想采取我的textarea并将其转换为编辑器。但是我不能够捕捉到window.onload事件: -

window.onload = function(){ 
     alert('hello'); 
    } 

,如果进一步我写的东西: -

$(function(){ 
} 

它可以在Opera和IE,但有时不工作有时。总而言之,如何在上述情况下捕获window.onload?

编辑

貌似$(function(){ }似乎是工作,问题是fx: { opacity: 'toggle' }。当我删除效果,它工作正常。

感谢提前:)

+0

您正在使用哪个版本的jQuery/jQuery UI?在两者之间以前的不兼容版本中,视觉效果会破坏小部件。 – 2010-08-07 14:50:15

回答

1

window.onload事件不会火,在文档中你加载到它已经早些时候解雇。

您应该可以使用document.ready,例如, $(function() { });在你正在提取的页面中,它工作,只要你至少jQuery 1.4.2 +。 1.4.2版本中的事件修复了几个问题,其中包括一个不一致的问题,如果您使用1.4.1或更低版本,我不能保证它是100%一致的。

或者,你可以在主要页面,而不是内部Messages.php的代码并运行在选项卡中的load event代码,就像这样:

$("#tabs").bind("tabsload", function(event, ui) { 
    $('.myEditorClass', ui.panel).myEditorPlugin(); 
}); 
1

我在某些浏览器注意到,如果您使用display:none,它将不会在该标记内呈现任何内容,它只是忽略其中的内容,因为它没有被显示。我不确定该fx设置是否使用.hide(),但这可能是问题的一部分。

为什么不在加载的页面上设置一个名为“init”的函数,然后让ajax做一个回调来触发它?