2011-06-23 42 views
0

我在jQTouch應用程序中設置了一個簡單的AJAX POST表單。我們在這裏簡單地談論開箱即用:jQTouch AJAX表格回調

<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細節,有沒有一種直接的方法來將成功處理程序附加到它?或者我最好試圖綁定一個pageAnimationEnd處理器$('[id^=page-]'),並希望業務不希望我做任何其他特別形式的返回,直到我們用jQuery Mobile中編寫的應用程序替換這個應用程序?

回答

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(); 
    } 
});