如何覆盖ajax = false,以便切换到加载的dom页面(如果存在)

lul*_*ala 6 javascript jquery jquery-mobile

我有一些项目htmls,每个项目都包含一个JQM页面.我还有一个索引页面.它是一个多JQM页面的html,每个JQM页面都是列出项目的类别.

  index.html                  item1.html           item2.html
  +------------------+        +--------+--------+  +--------
  |+-------+         |     +--|Cat.    |    Next|->|Cat.
  ||.cont- |         |     |  +--------+--------+  |--------
  ||ent    |+-------+|<----+  |                 |  |
  |+-------+|#cat1  ||        |                 |  |
  |         |       ||        |bla bla bla      |  |bla bla
  |         |link1+---------->|                 |  |
  |         |link2  ||        |                 |  |
  |         +-------+|        +-----------------+  +--------
  |+-------++-------+|
  ||#cat2  ||#cat3  ||
  ||       ||       ||
  ||link4  ||link3  ||
  ||       ||       ||
  |+-------++-------+|
  +------------------+
Run Code Online (Sandbox Code Playgroud)

目前我可以从索引链接到项目,平滑的ajax加载.但是我意识到如果我想从项目链接到索引#cat1,我需要使用data-ajax='false'索引是一个多页面的html.(我无法使用,data-rel='back'因为上一页并不总是index.html).

如果我使用ajax='false',如果我经常在列表和项目之间切换(每次切换回列表是完全重新加载),我将失去平滑过渡.例如:

-full-load-> index#cat1 -ajax-load-> item2 -full-load(再次) - > index#cat1

我想要:

-full-load-> index#cat1 -ajax-load-> item2 -ajax-switch-to-already-loaded-> index#cat1

我如何覆盖jquery移动逻辑,以便在data-ajax='false'单击链接时,它首先搜索该索引#cat1页面是否已经在dom中?如果是,则只需切换到该JQM页面.如果它不存在,请在没有ajax的情况下完全加载索引#cat1(如默认行为).

请记住,用户可以从item1.html开始并导航到index.html#cat1.

我知道我需要使用一些自定义属性标记每个JQM页面,data-full-url="index.html#cat1"以便更容易搜索现有页面.然而,我的主要弱点是如何更改现有的Jquery Mobile链接逻辑.

Nac*_*ket 0

我已经用以下小提琴创造了你的情况。

1)索引页面:http://jsfiddle.net/nachiket/RpZW7/
2)详细项目页面:http://jsfiddle.net/nachiket/cHmhW/ (该页面已链接在索引页面fiddle中)

我没有使用 data-ajax='false',它能解决您的问题吗?如果没有,请根据您的具体情况更新此小提琴,这样可以提供更好的帮助。