这是我的javascript: -
<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 :(得分:1)
window.onload
事件不会在你之前加载到已经的文档中触发。
您应该可以使用document.ready
,例如如果您至少使用jQuery 1.4.2 + ,则会在您正在获取的页面中$(function() { });
并且它正常工作。 1.4.2版本中的事件修复了几个问题,其中一个是不一致的,如果你使用1.4.1或更低版本,我不能保证它是100%一致的。
或者,您可以在主页面中而不是在Messages.php中包含代码,并在选项卡的load
event中运行代码,如下所示:
$("#tabs").bind("tabsload", function(event, ui) {
$('.myEditorClass', ui.panel).myEditorPlugin();
});
答案 1 :(得分:1)
我在一些浏览器中注意到,如果你使用display:none,它将不会在该标签内呈现任何内容,它只会忽略其中的任何内容,因为它没有显示。我不确定fx设置是否使用.hide(),但这可能是问题的一部分。
另外为什么不在被加载的页面上设置一个名为“init”的函数,然后让ajax做一个回调来触发它呢?