【发布时间】:2013-10-09 05:31:06
【问题描述】:
对不起,我再次需要你的帮助:-(
我用主导航和子导航做了一个导航。子菜单将自动显示或隐藏,具体取决于主菜单中的单击选项卡/链接。
活动状态随menstr值变化。
在 IE 中完美运行 :-) 在 Firefox 中它什么也不做 :-(
我认为问题在于 Firefox 无法处理的 <a> 标签中的自定义对象属性?
这是我的 cmets 代码:
主层:
<ul>
<li><a id="M1" data-remote="true" menstr="M1:Sub1:S2" href="start1.php">Start1</a></li>
<li><a id="M2" data-remote="true" menstr="M2:0:S0" href="start2.php">Start2</a></li>
</ul>
子级:
<div id="Sub1" class="subv" style="display:none">
<ul>
<li><a id="S1" data-remote="true" menstr="M1:Sub1:S1" href="sub1.php">Sub1</a></li>
<li><a id="S2" data-remote="true" menstr="M1:Sub1:S2" href="sub2.php">Sub2</a></li>
</ul>
</div>
menstr:
所以 menstr 在 Navigation 上给出了实际状态。
M1 到 Mx = 活动主选项卡(M1 是主栏中的第一个选项卡)
Sub1 到 Subx = 子导航上的名称(0 = 无子栏)
S1 到 Sx = 活动的子标签
页面底部的jQuery / Java:
<script>
// Look if <a> is clicked and data-remote is true
$('a[data-remote]').click(function(e) {
// Prevent Default Action
e.preventDefault()
//Remove activ state/class from all Main Tabs
$('.active').removeClass('active');
//Remove active state/class from all Sub Tabs
$('.sub_nav_active').removeClass('sub_nav_active');
//Hide the Sub Tab
$('.subv').hide();
// Get and split the menstr
var $menstr = this.menstr.split(':');
//Set Main tab active
$('#' + $menstr[0]).addClass('active');
//Set Sub tab active
$('#' + $menstr[2]).addClass('sub_nav_active');
//Show Sub div if some is there
$('#' + $menstr[1]).show();
// Load the content of href in the main div
$('#main').load(this.href);
});
</script>
我认为一种解决方案是在 href 中提供 menstr 字符串,但我认为它不好......
我认为的第二个问题是没有数据远程我需要识别链接以处理一个类,但我需要它用于活动状态...
非常感谢它是一个真正伟大的社区:-)
【问题讨论】:
-
尝试改变... var $menstr = this.menstr.split(':');到 var $menstr = $(this).attr('menstr').split(':');
-
没问题..乐于助人..:D
-
嘿..如果我发布了这个答案..你会接受它..只是问因为..我需要一些声誉..
-
对不起,我写了一个,但写这个作为答案,并赞扬每个将看到工作脚本的人都可以查看我的答案,我会接受它,所以你给了我正确的提示!
标签: javascript jquery firefox