2013-04-05 56 views
0

在这个代码下面我只是想当我点击面板内的任何内容(面板内的P标签中包含的内容),不应该滑动面板,直到点击面板或其他地方在面板内部使用但不是子元素p,请参阅小提琴中的html以获取帮助,并单击“尝试”,如果使用其他非click事件,则不应关闭面板。这个剧本早些时候帮助我与先生praveen。需要帮助在这个切换很小的变化

代码

$(document).ready(function() { 
    $("#toggle li > .panel").hide(); 
    $('.plusminus').html('+'); 

    $('#toggle li').click(function() { 
     if(!$(this).children('.panel').is(":visible")) { 
      $("#toggle li > .panel").slideUp(); 
      $('.plusminus').html('+'); 
     } 
     a = $(this).children(".plusminus"); 
     $(this).children(".panel").slideToggle('fast', function(){ 
      a.html($(this).is(":visible") ? '--' : '+'); 
     }); 
    }); 

    $("body").click(function(event){ 
     if ($(event.target).closest("ul").attr('id') != "toggle") { 
      $("#toggle li > .panel").slideUp(); 
      $('.plusminus').html('+'); 
     } 
    }); 
}); 

拨弄着玩的

http://jsfiddle.net/praveenscience/Ss3xU/26/

+0

我真的不明白你的问题。 “如果我点击任何带有面板的内容标签,我可以工作吗?”内容标签究竟是什么意思?您网页上的哪些对象应该是可点击的? – drquicksilver 2013-04-05 08:32:35

回答

1

去除document load$("#toggle li > .panel").hide();使面板上打开load

添加$("#toggle li > .panel").click(function(event){ event.stopPropagation(); }); 将使下拉当y时不关闭ou点击面板内

+0

@ Nisanth:+1。 @Kamal:顺便说一句,你真的想在打开其他菜单时折叠一个菜单,还是这是一个问题? – Sharun 2013-04-05 09:29:46

+0

@Nisanth在fiddel的html中看到点击(尝试),这应该不会滑动,直到在其他地方执行的点击事件。 – 2013-04-05 09:45:31

+0

@kamalbhardwaj查看编辑答案 – 2013-04-05 09:50:22