当您点击按钮时,我有一个向下滑动的面板。我还在页面的buttom上有另一个按钮切换同一个窗格。问题是,它们彼此独立工作,因此当单击一个按钮时,它会启动链。
HTML
<div id="videoPane">
content inside panel
//NOTE: the below anchor has a negative bottom margin, so it remains in plain view when the panel is closed.
<a href="#" class="close"><img src="images/arrow.png"></a>
</div>
<div id="footerNav">
<a class="vidbtn" id="b4" href="#">Watch Video</a>
</div>
我希望a.vidbtn
和a.close
执行相同的任务:打开面板;但是,他们需要互相合作。
我的Jquery如下:
$("#videoPane a").toggle(function(e){
$("#videoPane").addClass("videoExpanded");
$("#b4").addClass("activeBtn");
e.preventDefault();
}, function(e){
$("#videoPane").removeClass("videoExpanded");
$("#b4").removeClass("activeBtn");
e.preventDefault();
});
$("#b4").toggle(function(e){
$("#videoPane").addClass("videoExpanded");
$("#b4").addClass("activeBtn");
e.preventDefault();
}, function(e){
$("#videoPane").removeClass("videoExpanded");
$("#b4").removeClass("activeBtn");
e.preventDefault();
});
代码很简单:它们都切换相同的元素#videoPane
,并且它们需要同步工作。
答案 0 :(得分:0)
创建一个单独的函数来切换视频窗格,然后在点击其他元素时调用它:
$("#videoPane a, #b4").click(function (e) {
e.preventDefault();
toggleVideoPane();
});
var toggleVideoPane = function () {
var $videoPane = $('#videoPane');
if ($videoPane.hasClass('videoExpanded')) {
$("#videoPane").removeClass("videoExpanded");
$("#b4").removeClass("activeBtn");
} else {
$("#videoPane").addClass("videoExpanded");
$("#b4").addClass("activeBtn");
}
};
答案 1 :(得分:0)