2013-04-01 1 views
3

Я использую JQuery Accordionn управление, вы можете найти URL ниже:Как управлять пустыми панелями аккордеона jQuery? Как отключить щелчок на заголовке Аккордеона?

аккордеона: http://jqueryui.com/accordion/

Вопрос: Как мы можем управлять пустым меню снимите интерактивный; пример. Если у меня нет элемента в меню «Раздел 2», он не должен быть доступен для кликов. Когда я это сделаю, он либо добавит родительский элемент следующего родительского элемента к предыдущему, либо искажен, или если я покину только emtpy <div>, он откроет пустое меню, а не щелчок. Может ли кто-нибудь помочь?

+0

, если у вас нет ничего в меню, почему вы привязались, чтобы встроить его в пустой DIV ?? –

ответ

4

Вы можете попробовать с http://api.jqueryui.com/accordion/#event-beforeActivate

$(".selector").on("accordionbeforeactivate", function(event, ui) {}); 

В функции вы можете проверить ui.newPanel, если пусто, то отменить активацию этой панели.

Я создал jsfiddle пример: http://jsfiddle.net/npthU/1/

$("#accordion").on("accordionbeforeactivate", function(event, ui) { 

     if($.trim($(ui.newPanel).html()).length == 0) 
      event.preventDefault(); 

    }); 

использовано event.preventDefault(); отключить открытие конкретной панели, которая имеет пустой DIV.

+0

Спасибо @freshbm за быстрый фокус на этом вопросе, я очень благодарен. Позвольте мне попытаться вернуться к вам как можно скорее. – mknayab

+0

Извините @freshbm, может быть, ваш ответ был также прав, но, к сожалению, я не могу исправиться. Я уверен, что я не понимаю, но почему-то я сделал это так, пожалуйста, проверьте http://jsfiddle.net/wru3j/ Спасибо в любом случае ... – mknayab

+0

О, я попробовал еще раз, и он тоже работает ... wow я получил два разных решения сейчас :-) Спасибо @freshbm, я проверил ваш ответ. – mknayab

0

Вот обновление этого кода:

$('#'+_id).on("accordionbeforeactivate", function(event, ui) { 
     if((($.trim($(ui.newPanel).html()).length == 0)&&($(ui.oldHeader).length==0))||(($.trim($(ui.newPanel).html()).length == 0)&&($(ui.newHeader).length))){event.preventDefault();}); 

Теперь он позволяет свернуть/сворачиваются