События submit, change, click, keypress не работают на iphone/ipad

389
05 апреля 2017, 15:24

Обработчики событий Jquery не выполняются на Iphone/Ipad, хотя корректно работают на настольном компьютере и на Android.

Пример кода строки поиска, которая использует Rx.js для auto suggesions и Jquery для Ajax запросов по событию submit.

<div class="search">
    <form action="/newsearch" method="POST"><input id="search" name="q" type="text" placeholder="Search" autocomplete="off" value="">
        <ul class="search-categories">
        </ul>
    </form>
</div>
$(function() {
    var template = '{{#if results}}<ul class="category-list">{{#results}}<li class="category"><a class="category-tile" href="/{{url}}"><span class="category-title">{{name}}</span></a></li>{{/results}}</ul>{{/if}} {{^results}}<div class="not_found">Not found</div>{{/results}}';
    var render = Handlebars.compile(template);
    var input = $('#search');
    var keyups = Rx.Observable.fromEvent(input, 'keyup');
    var results = keyups.throttle(300)
        .filter(e => {
            if (input.val().length <= 2) {
                $('.search-categories').empty();
            }
            return input.val().length > 2;
        })
        .map(e => 
            Rx.Observable.fromPromise($.ajax({
                dataType: 'json',
                url: '/newsearch',
                type: 'POST',
                data: {q: input.val()}
            }))
        )
        .concatAll();
    var subscription = results.forEach(arr => {
        $('.search-categories').empty();
        var html = '';
        var items = arr.results.slice(0, 5);
        items.forEach(item => {
            html += '<li class="search-categories-item"><a href="/' + item.url + '">' + item.name + '</a></li>';
        });
        $('.search-categories').append(html);
    });
    $('.search form').on('submit', function(e) {
        e.preventDefault();
        var q = $('#search').val();
        if (!q.trim().length) {
            return false;
        }
        else {
            $.ajax({
                dataType: "json",
                url: '/newsearch',
                type: 'POST',
                data: {
                    q: q
                },
                success: function(data) {
                    $('.search-categories').empty();
                    var rendered = render(data);
                    $('#result').html(rendered);
                }
            });
        }
    });
});

Вопрос в том, как заставить все это работать на мобильных устройствах IOS?

READ ALSO
не срабатывает localStorage(sesstionStorage)

не срабатывает localStorage(sesstionStorage)

не могу найти ошибку почему LocalStorage не работает, буду признателен за помощьАнимация должна сработать раз, при переходе на другие странице...

319
Jquery chosen не работает автодополнение с кириллицей

Jquery chosen не работает автодополнение с кириллицей

Хочу вывести выпадающий список, и прикрутить плагин chosen к нему

349
Почему метод push() добавляет запятую?

Почему метод push() добавляет запятую?

Столкнулась с проблемой следующего родаНеобходимо динамически рендерить с сервера данные

285
Не могу получить html

Не могу получить html

Есть форма с элементами внутри, типа:

231