yii1.1中jquery.yiitab.js报错的解决

阅读更多
yii1.1各版本都存在此问题
activate(href)修改为activate('>ul a[href="'+href+'"]');
activate(id)修改为activate('>ul a[href="'+id+'"]');
修改后如下
 
/**
* jQuery Yii plugin file.
*
* @author Qiang Xue ,代码之美
* @link http://www.yiiframework.com/
* @copyright 2008-2013 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
 
(function($) {
 
$.extend($.fn, {
yiitab: function() {
 
function activate(id) {
var pos = id.indexOf("#");
if (pos>=0) {
id = id.substring(pos);
}
var $tab=$(id);
var $container=$tab.parent();
$container.find('>ul a').removeClass('active');
$container.find('>ul a[href="'+id+'"]').addClass('active');
$container.children('div').hide();
$tab.show();
}
 
this.find('>ul a').click(function(event) {
var href=$(this).attr('href');
var pos=href.indexOf('#');
activate('>ul a[href="'+href+'"]');
if(pos==0 || (pos>0 && (window.location.pathname=='' || window.location.pathname==href.substring(0,pos))))
return false;
});
 
// activate a tab based on the current anchor
var url = decodeURI(window.location);
var pos = url.indexOf("#");
if (pos >= 0) {
var id = url.substring(pos);
if (this.find('>ul a[href="'+id+'"]').length > 0) {
activate('>ul a[href="'+id+'"]');
return;
}
}
}
});
 
})(jQuery);
 上面的解决方案是不恰当的,后来发现了新的解决方案
不需要修改js,而是把tagid作为anchor放到url中,就是url#id的形式
比如
$tabParameters[$tab]=['title'=>$title,'url'=>$this->createUrl('index',['selTab'=>$tab,'#'=>$tab])];

你可能感兴趣的:(yii1.1中jquery.yiitab.js报错的解决)