Переключить изображение со стилем ввода, скрытым с помощью jQuery Mobile Flip Switch на той же странице

Подробно: мне нужно переключить изображение, т. Е. Когда включен флип-переключатель, он показывает изображение и скрывает его, если значение отключено. Код находится в файле JS.

$("#dashboard").append('<form><img src="../images/GREEN.png" style="display: none;" id="greenimage">Toggle Image<select id="flip" name="flip-select" data-role="flipswitch">'+
                    '<option>Off</option>'+
                    '<option>On</option>'+
                    '</select>'+
                '</img></form>');

$("#dashboard").trigger("create");          

                $('#flip').click(function() 
                        {

                            $("#yellowim").toggle('slow');
                        });

Размещение контрольных точек в коде показывает, что функция CLICK выполняется с событием триггера, даже не нажимая переключатель.

1 ответ

У вас есть пара проблем.

Во-первых, тэг IMG должен закрыться перед SELECT. Во-вторых, идентификатор, который вы присвоили изображению, - "greenimage", но вы пытаетесь переключить "yellowim". В-третьих, поскольку вы добавляете выбор динамически, вы должны использовать делегирование события, чтобы связать событие. Наконец, для выбора вы используете событие изменения, а не событие щелчка.

Если вы используете jQM 1.4.x, вы можете использовать ImproWithin() вместо триггера ("создать").

$("#dashboard").append('<form><img src="http://lorempixel.com/32/32/nature/1/" style="display: none;" id="greenimage" />Toggle Image<select id="flip" name="flip-select" data-role="flipswitch">' +
    '<option>Off</option>' +
    '<option>On</option>' +
    '</select>' +
    '</form>').enhanceWithin();

$("#dashboard").on("change", '#flip', function () {
    $("#greenimage").toggle('slow');
});

Вот ДЕМО

Другие вопросы по тегам