2016-03-04 42 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

謝謝你,這個修補程序做到了! :) –