簡體   English   中英

JQuery Mobile:在新頁面上運行 javascript 方法

[英]JQuery Mobile: Run javascript method on new page

我有一個應用程序可以讓用戶贏取獎品。 要贏得獎品,他們需要訪問這樣的頁面: www.myUrl.com#isAWinner其中#isAWinner是我的移動頁面。 我擔心有人會想到只是輸入那個 url 並直接進入獲勝者頁面而沒有真正獲勝。 為了解決這個問題,我嘗試這樣做:

<!-- Show this if the user is a winner -->
<div id = "isAWinner" data-role = "page">
    <p>YOU WIN!!!</p>
    <!-- Invisible link -->
    <a href = "#beforeLogin" id = "goBack" class = "InvisibleLinks"></a>
    <!-- Ensures that the user does not just enter #isAWinner to the end of the URL -->
    <script type="text/javascript"> reallyAWinner()</script>
</div>

function reallyAWinner () {
    alert(isAWinner);
    //Check to see if they really are a winner
    if (isAWinner == false) {
        //Not really a winner. Send back to login
        $('#goBack').click();
    }
}

問題是在頁面最初加載時會觸發alert ,但是如果我嘗試將 go 轉換為 URL 后記,則不會再次觸發該方法。

我不了解 JQuery 移動設備的工作原理嗎? 它只會在整個 HTML 頁面加載時才命中該reallyAWinner()方法,而不是在isAWinner頁面加載時? 如果是這樣,是否有另一種方法可以僅在加載isAWinner頁面時檢查用戶是否真的是贏家?

編輯:這里有更多信息。 當我最初在沒有加載第一頁的情況下進入該方法時, reallyAWinner()中的警報將在我的document.ready方法中的警報之前觸發,從而使$('#goBack').click(); 不工作(因為手機沒有加載)

如果您啟用了 ajax 方法調用 function 將在調用初始頁面時調用真正的AWinner()。

只有在加載#isAWinner 頁面時,您才能調用 function realAWinner() 您可以在頁面的 id 上注冊“pageshow”事件。

因此,您可以執行以下操作:

$('#isAWinner').live('pageshow', function () { reallyAWinner();  });

來自 jQueryMobile 文檔:

pageshow: Triggered on the page being shown, after its transition completes.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM