關閉按鈕,這裏是一個非常簡單的小提琴:在對話框返回錯誤頁面
如果單擊標題欄中的「預設」按鈕,它會打開一個對話框。如果您單擊對話框上的「關閉」按鈕,而不是返回到它來自的頁面,則會轉到頁面上的最後一頁(不包括對話框本身)(內容爲This is another page
)。怎麼來的?有沒有辦法修復自動插入的後退按鈕,以便它正常運行(比如我在對話框中包含的「home」按鈕),否則,是否有辦法刪除關閉按鈕。
<div data-role="page" id="index">
<header data-role="header">
<h1>Index</h1>
<a href="#presets" data-icon="star" class="ui-btn-right" data-transition="pop" data-rel="dialog">Presets</a>
</header>
<article data-role="content">
<div>This is the main page</div>
</article>
</div>
<div data-role="page">
This is another page
</div>
<div data-role="page" id="presets">
<header data-role="header">
<h1>Presets</h1>
<a href="#index" data-icon="home" data-iconpos="notext"></a>
</header>
<div data-role="content">
This is a dialog!
</div>
</div>
更新
由於TAIFUN指出,問題是缺乏一個頁面上的ID的。添加一個id修復了我的第一個小提琴。然而,我的實際情況是更復雜一點,如本琴:
在這裏,我實際上是創建動態使用基因敲除的頁面,我給你的ID通過數據綁定的網頁,但是,它似乎,由於某些原因,這些id不被jQuery Mobile識別。如果您使用Firebug查看,您可以看到ID已正確添加到頁面的屬性中,但是當關閉對話框時,您將在第3頁而非原始頁面結束。
更新2
簡單的修復,我只是增加了一個虛擬ID爲HTML的位敲除會作爲模板使用:
<!-- ko foreach: pages -->
<div data-role="page" data-bind="attr: {id: name}" id="dummy">
This is <span data-bind="text:name"></span>
</div>
<!-- /ko -->
見here。
虛擬身份證被淘汰賽取代,所以指向該網頁的鏈接正常工作,jQuery手機似乎很高興!
好了,能解決我的小提琴這個問題,但是,當然,我的真正的系統是一個稍微複雜一點。在那些額外的頁面是由knockout動態創建的,他們有ID,但似乎jQuery Mobile忽略它們。這可能是另一個問題,由jQuery Mobile發佈時的順序造成的,而淘汰賽則是綁定的。 –
好吧,我想我已經找到了解決方案。這很愚蠢而且很冒險,但是如果我只是在我的模板中添加一個僞造的ID,它似乎使jQuery mobile足夠快樂,它可以工作。淘汰賽將取代通過數據綁定到正確的ID,但它似乎工作。 –
另請參閱我的其他答案,刪除關閉按鈕... – Taifun