Подтвердить что ты не робот

.on() и переключиться вместе

Быстрый вопрос здесь, ребята, я не могу, кажется, получить это

$('#wrap').on('toggle', '#image', function(){
    <!-- Do stuff -->
  });

чтобы иметь возможность переключаться внутрь? Есть идеи? Я пробовал поиск по Google, но не повезло.

это код, с которым я пытаюсь работать с .on, так как в настоящее время он не применяет изменения ко всему элементу, сынущему страницу, (который имеет #image и #brick)

$("#result_options").toggle(function() {
        var image_width = $('#image').width() / 2;
        var brick_width = $('#brick').width() / 2;
        $("#image").css("width",image_width);
        $("#image").css("padding","4px");
        $("#brick").css("width",brick_width);
    },function (){
        $("#image").css("width","300");
        $("#image").css("padding","8px");
        $("#brick").css("width","314");
        $(this).html("Smaller Results");
    });
});
4b9b3361

Ответ 1

Проблема, с которой вы сталкиваетесь, заключается в том, что нет события toggle; toggle() - метод jQuery. Чтобы реализовать toggle(), с on(), я думаю, вам нужно будет использовать событие click, а затем оператор if, чтобы проверить, было ли что-то включенным или переключено/не переписано

$('#wrap').on('click', '#image', function(){
    if (!$(this).attr('data-toggled') || $(this).attr('data-toggled') == 'off'){
        /* currently it not been toggled, or it been toggled to the 'off' state,
           so now toggle to the 'on' state: */
           $(this).attr('data-toggled','on');
           // and do something...
    }
    else if ($(this).attr('data-toggled') == 'on'){
        /* currently it has been toggled, and toggled to the 'on' state,
           so now turn off: */
           $(this).attr('data-toggled','off');
           // and do, or undo, something...
    }
});