【问题标题】:jQTouch AJAX Form CallbackjQTouch AJAX 表单回调
【发布时间】:2011-06-23 18:48:11
【问题描述】:

我在 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 处理程序,并希望在我们用 jQuery Mobile 编写的应用程序替换这个应用程序之前,业务不希望我对临时表单返回做任何其他事情?

【问题讨论】:

    标签: ajax jqtouch


    【解决方案1】:

    解决了。 返回的片段自然可以声明自己的 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();
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 2011-04-12
      • 2018-01-05
      相关资源
      最近更新 更多