2013-04-24 41 views
2

我使用jquery ui tab加载一个HTML,在该HTML我有一个方法。我怎样才能从JQuery的UI标签是由AJAX加载这个方法

$("#tabs").tabs({    
       beforeLoad: function (event, ui) { 
        ui.jqXHR.error(function() { 
         ui.panel.html(
          "Couldn't load this tab. We'll try to fix this as soon as possible. " + 
          "If this wouldn't be a demo."); 
        }); 
        ui.jqXHR.success(function() { 
         alertMe() 
        }); 
       } 
      }); 

<div id="tabs" style="height: 100%"> 
     <ul> 
      <li><a href="Map.html">Tab 1</a></li> 
     </ul> 
</div> 

在map.html中我有alertMe方法。这里显示alertMe是未定义的。

回答

3

当服务器成功返回响应时,但在任何标签页呈现逻辑发生之前(如将html/js添加到页面中)时,会调用jqXHR'success'。因此,一个更好的解决办法是使用标签控件的加载方法处理呼叫:

$('tab's).tabs({ 
    beforeLoad: ... 
    load: function() { 
     alertMe(); // Global JS on loaded fragment will be available on page now 
    } 
}); 

API文档:http://api.jqueryui.com/tabs/#event-load