2015-06-09 2 views
4

У меня есть неупорядоченный список с некоторыми объектами, когда вы нажимаете <li>, список будет сведен к минимуму, и когда вы нажмете его снова, он будет расширяться. Я использую API jQuery UI на Accordion, проблема в том, что мой флажок внутри моего <li> не работает. Для меня невозможно заставить его работать, и на нем нет «слоев».Флажок не включен в список аккордеона

Я пробовал поставить флажок position:absolute; z-index: 1000000000, но без результата. Я также попытался создать функции, которые будут обновлять значение при щелчке, но там же. Не повезло ...

не

Флажок, что не работает это один рядом с текстом «Publicera:»

Смотрите мой JSFiddle, почему не JQuery UI позвольте мне мой флажок?

+0

Флажки в скрипку, кажется, работает для меня. В каком браузере вы работаете? – JNF

+0

@JNF Версия 43.0.2357.81 (64-разрядная версия) на OSX Yosemite – Jack

+2

Аналогичный вопрос [jQueryUI accordion with checkboxes] (http://stackoverflow.com/questions/7426425/jqueryui-accordion-with-checkboxes) –

ответ

4

Это связано с тем, что плагин аккордеона вызывает предупреждение по умолчанию в событии click элемента заголовка, поэтому, когда вы нажимаете на этот флажок, действие по умолчанию предотвращено.

Одним из возможных решений является прекращение распространения события click в заголовке, чтобы он не вызывал обработчик щелчка заголовка аккордеона.

$(".mm-panel").accordion({ 
    collapsible: true 
}); 

$(".mm-panel .ui-accordion-header input[type=checkbox]").click(function(e){ 
    e.stopPropagation(); 
}) 

Демо: Fiddle

5

просто добавить Jquery событие, которое позволит предотвратить любые родительские обработчики из уведомления о событии:

$("input[type=checkbox]").click(function(event){ 
    event.stopPropagation(); 

}); 
3

Вы должны будете остановить событие от распространяющихся вверх от флажка

$('#panels input[type="checkbox"]').click(function(e) { 
    e.stopPropagation(); 
}); 

Скрипки : https://jsfiddle.net/msy345gv/2/

Смежные вопросы