Я пытаюсь связать взаимодействия с динамически загруженными ссылками:
HTML:
<div id="content">
My dynamic content will be here.
</div>
JS:
$(function(){
loadContent();
$('#content').css('height',400);
$('#content').on('click','a',function(){
alert();
});
});
Это отлично работает на настольном компьютере и с довольно небольшим содержанием на Android.
Но он не будет работать с более длинным контентом на Android (без JS-ошибки на Eclipse). Тем не менее, я не обнаружил никаких других различий, кроме длины контента между рабочими и нерабочими страницами. Поэтому я пытался искусственно ограничить длину контента, а затем он работает нормально.
У вас есть какие-то сведения о том, что происходит?
//РЕДАКТИРОВАТЬ
Я обновил код, поскольку при вводе этого вопроса я сделал некоторые основные ошибки. Эта версия лучше отражает основную проблему.
//РЕДАКТИРОВАТЬ
Наконец, мне удалось изолировать то, что вызвало конфликт. Это связано с обновлением css div после загрузки содержимого. Если я искусственно удаляю атрибут стиля высоты с помощью Weinre, ссылки снова будут доступны для просмотра!
Я не вижу, как это работает на рабочем столе вообще, потому что вызов on()
должен быть внутри обработчика готовности DOM, и имя события должно появиться перед фильтрующим элементом, например:
$(function(){
loadContent();
$('#content').on('click', 'a', function(e) {
alert('something');
});
});
Во-первых, исправьте функцию готовности документа для loadContent
и on
.
Во-вторых, если вы загружаете контент после загрузки страницы. вы должны привязать событие к body
как это
$(function(){
loadContent();
$('body').on('click', '#content a', function(){
alert('Hello world!');
});
});
loadContent()