我正在处理的页面有两个样式表。当选择备用样式表时,我需要运行一个额外的功能来获得我想要的效果。所以我的问题是,如何在备用样式表处于活动状态时编写javascript以仅执行此代码块?
通过两个按钮和styleswitcher.js切换css,如下所示:
<ul class="viewbuttons">
<li><a class="threedview" href="#" onclick="setActiveStyleSheet('default'); return false;">3D View</a></li>
<li><a class="twodview" href="#" onclick="setActiveStyleSheet('alternate'); return false;">2D View</a></li>
</ul>
就javascript而言,我已经采用了备用样式表特定代码(twodview)并将其置于单击功能中,以便在切换样式表时激活
$("a.twodview").click(function(){
all my terrible noob code
});
所以这显然是第一次切换到2dview,但在切换回来时代码仍然存在。我目前正在寻找的是如何在这些方面设置功能:
$("a.threedview").click(function(){
remove all my terrible noob code activated by the twodview
});
我探索的第一个选项是尝试将活动样式表定义为while循环中的变量,但令我惊讶的是,头部并没有真正改变使用styleswitcher.js所以我不明白它是怎么回事切换css(魔术我假设)
这让我回到尝试使用.click()事件,如上所示,任何建议?
谢谢大家。
更新
$("a.twodview").click( function() {
$('img.small01').off('mouseenter');
$('div#makeMeScrollable01').off('mouseleave')
$('img.small02').off('mouseenter');
$('div#makeMeScrollable02').off('mouseleave')
$('img.small03').off('mouseenter');
$('div#makeMeScrollable03').off('mouseleave')
});
$("a.threedview").click( function() {
$('img.small01').on('mouseenter');
$('div#makeMeScrollable01').on('mouseleave')
$('img.small02').on('mouseenter');
$('div#makeMeScrollable02').on('mouseleave')
$('img.small03').on('mouseenter');
$('div#makeMeScrollable03').on('mouseleave')
$('div#booma').off('click');
});
$("a.twodview").click( function() {
$('div#booma').click( function() {
setTimeout(function(){$("div#makeMeScrollable01").addClass("currentslide");},2100);
setTimeout(function(){$("div#makeMeScrollable01").appendTo("body");},2100);
$("div#makeMeScrollable01").smoothDivScroll("enable");
setTimeout(function(){$("div#makeMeScrollable01").smoothDivScroll();},2100);
setTimeout(function(){$("img.small01").hide();},2100);
});
});
所以我已经想出如何在3D视图和2D视图之间切换悬停/点击功能,问题是.on()部分应该在切换回3D时重新绑定hoverIntent()视图不起作用。
问题可能在于hoverIntent()?将.off()分隔成mouseenter和mouseleave工作得很好,所以我不确定是这种情况。
我觉得好像我的.on()是正确的方法,但没有正确实现,有什么建议吗?