Почему эта функция jquery не работает на iPhone OS? - PullRequest
0 голосов
/ 05 мая 2011

Следующий jquery прекрасно работает в большинстве браузеров для настольных компьютеров, но не работает в браузерах Android и iPhone:

$('#submit_event').live('click', function() {

    if ($("#event_name").attr("value") != "" && $("#event_details").attr("value") != ""){
        sendEvent($("#event_name").attr("value"), $("#event_details").attr("value"));
        $('#response_container').append("<div class='event_title'>"+$("#event_name").attr("value")+"</div><div class='event_details'>"+$("#event_details").attr("value")+"<div class='comment'>Comment</div><textarea class='comment_area'></textarea><div id='post_comment'>Post</div></div>");
    }
});

#submit_event - это просто идентификатор для div. При нажатии запускается функция в настольных браузерах, но не на Android или iPhone.

С уважением,

1008 * Тэйлора *

Ответы [ 4 ]

0 голосов
/ 23 апреля 2012

Если вы тоже используете jquery mobile, вы можете попробовать

$('#submit_event').live('tap', function() {}
0 голосов
/ 05 мая 2011

Хорошо, я нашел свой ответ,

Это просто ошибка в мобильном сафари.

Все, что вам нужно сделать, это добавить onclick = '' к любому элементу, с которым вы связываете живую функциюи это будет работать.

0 голосов
/ 09 сентября 2011

Да. Событие .live не будет работать с таким элементом, как td. Он будет работать с html-элементом, таким как тег привязки, кнопка и т. Д. Поэтому, если вы хотите применить событие click, используя событие .live jQuery, вам нужно сначала добавить атрибут onclick = "", используя метод jquery .attr для вашего элемента td, а затем применить. живое событие, чтобы связать событие с вашим элементом td. Для более подробной информации, пожалуйста, посетите ниже блог

http://skillfulness.blogspot.com/2010/11/workaround-for-jquery-live-event.html

0 голосов
/ 05 мая 2011

Вы можете попробовать более эффективный код:

$('#submit_event').live('click', function() {

    var eName = $("#event_name").attr('value');
    var eDetails = $("#event_details").attr('value');

    if (eName && eDetails) {
        sendEvent(eName, eDetails);
        $('#response_container').append("<div class='event_title'>" +
            eName + 
            "</div><div class='event_details'>" +
            eDetails + 
            "..."
        );
    }
});
...