我正在尝试使用Jquery为cakephp网站创建一个菜单栏。下面的代码显示了放置在视图文件夹中的ctp文件中的菜单元素。
<div id="menubar" class="menu">
<ul id="menu" class="menu">
<li class="active">
<a href="#tab4"><span>Allocation</span></a>
</li>
<li class=><a href="#tab1"><span>Update Travel</span></a></li>
<li><a href="#tab2"><span>User Profile</span></a></li>
<li><a href="#tab3"><span>Pay/Withdraw</span></a></li>
</ul>
<div class="clear"></div>
</div>我创建了一个用于选择每个菜单项的jquery文件,并将该文件放在webroot/js文件夹中
(function($){
$.fn.extend({
tabify: function( callback ) {
function getHref(el){
hash = $(el).find('a').attr('href');
hash = hash.substring(0,hash.length-4);
return hash;
}
function setActive(el){
$(el).addClass('active');
$(getHref(el)).show();
$(el).siblings('li').each(function(){
$(this).removeClass('active');
$(getHref(this)).hide();
});
}
return this.each(function() {
var self = this;
var callbackArguments = {'ul':$(self)};
$(this).find('li a').each(function(){
$(this).attr('href',$(this).attr('href') + '-tab');
});
function handleHash(){
if(location.hash && $(self).find('a[href=' + location.hash + ']').length > 0){
setActive($(self).find('a[href=' + location.hash + ']').parent());
}
}
if(location.hash){
handleHash();
}
setInterval(handleHash,100);
$(this).find('li').each(function(){
if($(this).hasClass('active')){
$(getHref(this)).show();
} else {
$(getHref(this)).hide();
}
});
if(callback){
callback(callbackArguments);
}
});
}
});
}) (jQuery);当我调用这个函数时,它会工作得很好。
$(document).ready(function () {
$('#menu').tabify();
});但我的问题是,当我为#tab1,#tab2,#tab3,#tab4的ctp文件中的每个菜单编写确切的url时,它将无法工作。
我想给这个url
<li class=><?php echo $this->Html->link('<span>Commuter</span>', array('action' => '../userprofiles/commuter'), array('escape' => false)); ?></span></li>安装,安装
<li><a href="#tab3"><span>Pay/Withdraw</span></a></li>如果有人能解决这个问题,请帮助我
发布于 2013-04-11 22:30:25
链接的语法应为数组形式(请参阅HtmlHelper文档)。
<li class="">
<?php echo $this->Html->link('<span>Commuter</span>',
array('controller'=>$your_controller_here,
'action' => $your_action_here,
$param1 /*parameters if you need them*/),
array('escape' => false)); ?>
</li>根据您的需要更换控制器和操作等,看看这是否解决了问题。
请注意,没有必要以数组的形式传递url,但您必须决定是数组还是静态字符串url (如'../userprofiles/commuter'),不要同时使用两者。
https://stackoverflow.com/questions/15944858
复制相似问题