JQuery Mobile: события нажатия не могут быть прикреплены к кнопке после показа / скрытия - PullRequest
0 голосов
/ 17 февраля 2012

У меня очень странная проблема с jquery mobile:

Я использую таблицу и скрываю строки:

$('tr ...').hide();

В строках таблицы есть определенные кнопки, такие как: button1.

Сначала я вызываю $ ('# button1'). Hide, а затем $ ('# button1'). Show, чтобы сделать видимой строку, но кнопка отсутствует, поэтому я вызываю:

$('#button1').button();

Теперь большая проблема в том, что я не могу снова прикрепить какие-либо события щелчка, а предыдущие события отсутствуют.

Я попытался применить следующие стратегии, чтобы прикрепить событие:

$("#button1").click(...); bzw. $("#button1").live('click', ...);

$(document).ready("#button1").click(function() {
  alert(1);
});

$(document).ready("#button1").live('click', function() {
  alert(1);
});

Ни первый, ни второй вариант не работают.Последние два варианта работают, но я не получаю правильный объект отправителя в качестве параметра события (то есть: $ (this) .attr ('id')).

Знаете ли вы решение этой проблемы, ябыл бы очень признателен за помощь.

Заранее спасибо, Мартин

Ответы [ 2 ]

0 голосов
/ 17 февраля 2012

спасибо за ваш ответ. Я нашел ошибку, это была ошибка в моем коде. По вине я скрывал не только строки таблицы, но и кнопки. Если я просто скрываю TR, то события кликов все еще там. Для начальной загрузки я сейчас использую $(document).live('pagebeforeshow', ...);, так что все отлично работает:)

0 голосов
/ 17 февраля 2012

Не используйте $ (document) .ready () в jQuery Mobile! Проверьте DOCS для объяснения!

Может быть, это поможет вам

$('#page_id_blahblah').live('pageshow',function(){
    //do things with button show hide etc..
    //then append event to button after show, or before, or when you want
    var some_variable = 'button1';
    $('#button1').click(function(){
       alert("Button pressed: " + some_variable);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...