【发布时间】:2014-12-05 12:15:00
【问题描述】:
我正在尝试使用 jQuery UI $fn.tabs 在此 plunkr 中记录 jquery 选项卡,我将在此函数中声明要重新排序的选项卡,代码 sn-p 如下,我使用了 underscorejs wrap实现它的功能
$.fn.tabs = _.wrap( $.fn.tabs, function extendTabs( org, arguments ) {
var movObject = {"name": "fragment-3", "nextSibling": "fragment-2"};
console.log( "calling tabs", this, arguments );
// perform reordering here if needed
var listItemTobeMoved = $("li[xe-for-section="+movObject.nextSibling+"]");
var listItemTo = $("li[xe-for-section="+movObject.name+"]");
listItemTo.insertBefore(listItemTobeMoved);
org.apply( this, arguments );
});
<div id="tabs">
<ul>
<li xe-for-section="fragment-1"><a href="#fragment-1"><span>One</span></a></li>
<li xe-for-section="fragment-2"><a href="#fragment-2"><span>Two</span></a></li>
<li xe-for-section="fragment-3"><a href="#fragment-3"><span>Three</span></a></li>
</ul>
<div id="fragment-1" xe-section ="fragment-1">
Tab 1
</div>
<div id="fragment-2" xe-section="fragment-2">
Tab 2
</div>
<div id="fragment-3" xe-section="fragment-3">
Tab 3
</div>
</div>
标签的初始化可以使用下面的代码正常工作
$( "#tabs" ).tabs();
但是当我传递额外的参数时,它无法初始化并抛出如下错误:
$( "#tabs" ).tabs("select", 3);
错误:
Uncaught TypeError: Function.prototype.apply: Arguments list has wrong typescript.js:12 extendTabsunderscore.js:697 (anonymous function)(index):37 (anonymous function)
基本上选项卡项的选择失败,如何处理。谢谢
【问题讨论】:
标签: jquery jquery-ui tabs underscore.js