2016-03-04 3 views
0

Я создаю приложение, которое создает некоторые элементы, которые связывают пользователя с другой страницей. Код выглядит примерно так.Функция не работает должным образом при вызове внутри onDeviceReady

function showThis(){ 

    $('<a class="routePage"></a>').prependTo($('#updateCol')).slideDown("500",function(){}‌​) 

function onDeviceReady() { 
    $('.routePage').on('click',function(e){ 
    window.location = "page2.html"; 
    }); 
    showThis(); 
} 
    showThis(); 

К сожалению, только элемент, который был создан showThis() вне onDeviceReady вызовет window.location изменения. По более сложным причинам мое приложение требует, чтобы showThis() находился внутри функции onDeviceReady. У кого-нибудь есть возможная причина, почему это не работает?

+0

Вероятно, не является проблемой или тип, но не должен: $ ('') .prependTo ($ ('#updateCol')) slideDown ("500", функция() {}). be: $ ('') .prependTo ($ ('# updateCol')). SlideDown ("500", function() {}); – sscotti

ответ

1

Это может помочь attaching-click-event-to-a-jquery-object-not-yet-added-to-the-dom. Возможно, вам придется использовать:

$('body').on('click', '.routePage', function (e) { 
    window.location = "page2.html"; 
}); 

и, возможно, заменить родительский элемент тела.

К сожалению о замечании форматированием:

У вас есть это также:

<a class="routePage"</a>, should be <a class="routePage"></a> ? 
+0

спасибо, это исправить сделал трюк! :) –

Смежные вопросы