Jquery:如果其他滑动开关被启用(可见),在启动新的滑动开关之前关闭
jquery: if other slidetoggle is enabled (visible), close before initiating new slidetoggle
我有以下脚本。我有3个div都是display: hidden;我想使用slideToggle从页面顶部拉下的内容
<script type="text/javascript">
$(document).ready(function(){
$("#irN").click(function () {
$('#irN_dd').slideToggle();
});
$("#myir").click(function () {
$('#myir_dd').slideToggle();
});
$("#myirmsg").click(function () {
$('#myirmsg_dd').slideToggle();
});
});
</script>
HTML: <a id="irN">irN</a>
<a id="myir">myir</a>
<a id="myirmsg">myirmsg</a>
这个脚本工作得很好。唯一的问题是这三个可以同时打开。我只希望我在任何时候都能打开。所以…我该如何修改脚本来执行以下操作…
…如果没有打开,并且查看器单击其中一个id,则打开....…如果其中一个div是打开的,并且查看器单击另一个id,它会将打开的那个滑动,然后将新的向下滑动。
提前感谢!
关于注释的编辑
如果你不想检查标记等,你可以使用下面的东西来实现你想要的:
$("#irN, #myir, #myirmsg").click(function () {
var example = "#" + this.id + "_dd";
$(example).siblings("div[id$=_dd]").slideUp()
.is(":visible")
? $(example).delay(1000).slideToggle()
: $(example).slideToggle();
});
这将你所有的函数放入一个简洁的事件中(可能看起来更好,但是我现在太累了,想不出更好的东西)。
jsFiddle示例
相关文章:
- 我的jQuery插件参数没有正确启动,遇到了问题
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 从控制器返回后Ajax启动事件激发
- Meteor上的启动页面
- 如何防止网页加载后自动启动功能
- 如何从JavaScriptInterface启动Navigation Drawer
- window.on.scroll事件未启动
- 单击按钮后启动javascript提示
- AngularJS ng开关或类似的动态值工作
- 基于下拉菜单创建开关
- 在javaservlet doPost方法中启动线程时,无法返回异常消息
- spine.js在启动时填充模型实例
- Javascript开关不工作
- 在运行时启动jquery-ui.toggleSwitch.js切换开关
- 当另一个开关启动时,如何停止第一个开关的执行
- 当我用"respond_do"重新渲染部分时,启动开关功能不会加载
- Jquery如果复选框被选中,启动开关
- Jquery灯光开关设置启动状态
- Javascript-Make开关:默认的重新启动提示
- Jquery:如果其他滑动开关被启用(可见),在启动新的滑动开关之前关闭