Событие клика, подавленное Jquery Accordian - PullRequest
0 голосов
/ 05 октября 2011

Народ, у меня есть панель аккордеона, в заголовке которой есть флажок:

 <div id="accordion">
   <h3><a href="#"><input type='checkbox' id='chkbox'/>First header</a></h3>
   <div>First content</div>
    <h3><a href="#">Second header</a></h3>
   <div>Second content</div>
</div>

Теперь, когда я нажимаю на флажок, событие click подавляется jquery с использованием event.preventDefault.Следовательно, я не могу изменить состояние флажка.Я попробовал следующий трюк, но не повезло:

$("#accordion").accordion();

$('#chkbox').live('click',function(){
   var checkbox = $(this).find(':checkbox');
   checkbox.attr('checked', !checkbox.attr('checked'));

});

Пожалуйста, помогите !!см код http://jsfiddle.net/teBfb/1/ спасибо

Ответы [ 3 ]

0 голосов
/ 05 октября 2011

Вы можете использовать stopPropagation, чтобы событие щелчка флажка не проходило по цепочке.

$("#accordion h3 input").click(function(e) { 
    e.stopPropagation(); 
}); 

http://jsfiddle.net/teBfb/6/

0 голосов
/ 02 января 2014
   $(function () {
        $("#accordion").accordion({
            collapsible: true,


        });
    });



    $("#accordion h3 input").click(function (e) {

        var checkedStatus = $(this).prop('checked');
        e.stopPropagation();
         if (checkedStatus) {


           $("#accordion div div").slideUp();

            $(this).parent().next().slideDown();
         }
        else {


             $("#accordion div div").slideDown();

             $(this).parent().next().slideUp();

       }


    });

попробуйте

0 голосов
/ 05 октября 2011

То, что вы делаете с

.attr('checked', !$checkbox.attr('checked'));

, должно работать.Что означает, что ваш селектор сломан.Любая причина, почему вы используете знаки $ в именах переменных?Это может запутать jQuery.

...