繁体   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