所以我的脚本看起来像这样
function() { $( "#tabs" ).tabs(); }); function Wczytaj(link,div_id,parametr1,parametr2,parametr3) { $.ajax(link,{ data: { par1: parametr1,par2: parametr2,par3: parametr3 },type: "post",success: function(data) { $('#'+div_id).fadeOut("medium",function(){ $(this).append(data); $('#'+div_id).fadeIn("medium"); }); } }); }
<div id="tabs"> <ul> <li><a href="#id1" onClick="Wczytaj('trouble2.PHP','id1','null','null');">My id 1</a></li> <li><a href="#id2" onClick="Wczytaj('trouble2.PHP?action=lista','id2','null');">My id 2</a></li> <li><a href="#id3" onClick="Wczytaj('troubl2.PHP?action=old','id3','null');">My id3</a></li> </ul> <div id="id1"></div> <div id="id2"></div> <div id="id3"></div> </div>
而且它没有问题,但我也想使用一个URL地址加载div内容
例如,http://myurl.com/page.PHP#id2应该使用id2加载带有选定选项卡的页面 – 它可以工作,但是由于onClick属性,div为空.如何解决?
我为我的英文道歉
解决方法
您不需要使用自己的功能将AJAX加载到选项卡中,jQuery可以为您做到这一点.只需将href设置为URL,并且不要添加< div> s.
<div id="tabs"> <ul> <li><a href="trouble2.PHP">My id 1</a></li> <li><a href="trouble2.PHP?action=lista">My id 2</a></li> <li><a href="trouble2.PHP?action=old">My id3</a></li> </ul> </div>
jQuery将使选项卡,并通过AJAX自动加载页面.请参阅这里的文档:http://jqueryui.com/tabs/#ajax
它也会使< div>为你.在这个例子中,它们被命名为ui-tabs-X,其中X是制表符索引.所以,http://myurl.com/page.PHP#ui-tabs-2应该加载页面,第二个标签打开.
查看jQuery的演示:http://jqueryui.com/resources/demos/tabs/ajax.html#ui-tabs-2
编辑:如果要在加载远程标签之前或之后运行函数,jQuery UI将提供tabsbeforeload
和tabsload
事件.
创建选项卡时可以绑定它们:
$('#tabs').tabs({ beforeLoad: function(event,ui){ alert('loading'); },load: function(event,ui){ alert('loaded'); } });
或者他们可以绑定:
$('#tabs').on('tabsbeforeload',function(event,ui){ alert('loading'); }); $('#tabs').on('tabsload',ui){ alert('loaded'); });