jQTouch AJAX表单回调

时间:2011-06-23 18:48:12

标签: ajax jqtouch

我在jQTouch应用程序中设置了一个简单的AJAX POST表单。我们在这里谈论开箱即用的简单:

<form id="contact" class="topPage" method="post" action="/process/mobile-submit.cfm">
   <!-- Various form guts go here -->
</form>

这很有效。我的用户打入他们的信息,我的服务器端脚本完成它的工作并吞噬领先数据并吐出一个开箱即用的简单响应。

<div>
    <div class="toolbar">
        <a href="#contact" class="slide back">Back</a>
    </div>
    <div class="info">
        <strong>Thank You For Your Submission</strong><br />
        We have received your inquiry, and blah blah blah jibber jabber.
    </div>
</div>

每个人都很开心......除了我们这些试图在Google Analytics中跟踪转化的人。现在,我已经使用pageAnimationEnd事件在此应用程序的每个面板上设置了虚拟页面浏览量,当您知道要提前附加到哪些选择器时,这很简单,但是当jQTouch从中创建一个新的段时表单返回,它有一个通用的序列化ID,如#page- N

我尝试在表单返回中添加一个松散的脚本块。这适用于我桌面上的Firefox,而不是我手机上的Safari。

由于我已经允许jQTouch在这个例子中为我处理AJAX细节,有没有一种直接的方法来将成功处理程序附加到它?或者我最好尝试绑定$('[id^=page-]')上的pageAnimationEnd处理程序,并希望业务不希望我用ad hoc表单返回做任何其他事情,直到我们用jQuery Mobile编写的应用程序替换这个应用程序?

1 个答案:

答案 0 :(得分:0)

解决了这个问题。 返回片段自然可以声明自己的ID,然后jQTouch会将其视为文档的原始部分。我曾经假设jQTouch没有给出关于我给片段的属性的折腾;我错了。

这意味着您可以像文档的任何其他部分一样去。它还意味着您可以通过ID或类名绑定返回片段上的pageAnimationEnd处理程序,它将按预期运行。因此:

<div class="formResult">
<div class="toolbar">
    <a href="#contact" class="slide back">Back</a>
</div>
<div class="info">
    <strong>Thank You For Your Submission</strong><br />
    We have received your inquiry, and blah blah blah jibber jabber.
</div>

$('.formReturn').live('pageAnimationEnd', function(evt, info) {
    if (info.direction == 'in') {
        // Goal completion code
    } else {
        $(this).remove();
    }
});