ajs*_*sie 16 ajax jquery deep-linking jquery-address
我试图了解如何使用jQuery地址插件来处理与ajax的深层链接.
但文档很差,我找不到任何好的教程来解释发生了什么.
我认为一个包含好例子的好文档对每个插件都很重要.
有人可以解释或提供一些有用的链接来解释吗?
$.address.change(function(event) {
// do something depending on the event.value property, e.g.
// $('#content').load(event.value + '.xml');
});
$('a').click(function() {
$.address.value($(this).attr('href'));
});
Run Code Online (Sandbox Code Playgroud)
我的意思是,做$.address.value
什么?它说"提供当前的深层链接价值." 它甚至意味着什么?它有什么作用呢?
小智 14
一个快速的tut:使用AJAX的最大警告是URL没有改变,因此后退按钮不起作用+链接不被抓取.解决方法是使用URL中的页面部分锚点#符号.基于hashsign之后的数据,您可以使用AJAX,加载可抓取的pageparts等.
唯一的问题是,大多数浏览器没有URL更改事件,基于此可以加载AJAX内容,所以插件正在做的事实是它不时地监视URL并且如果它发生了变化,触发器基于tha-hash-sign-parameters的事件.所以基本上你在这里做的是
$('a').click(function() {
**//change the after-hash-sign-params to the value of the clicked link**
$.address.value($(this).attr('href'));
});
$.address.change(function(event) {
**//define an event handler based on the params...**
if (event.value = 'sortbyname')
sortstuffbyname()
else if (event.value ='sortbysomethingelse')
sortstuffbysomethingelse();
// do something depending on the event.value property, e.g.
// $('#content').load(event.value + '.xml');
});
Run Code Online (Sandbox Code Playgroud)
我从未尝试过其他插件,但工作原理可能是相同的.
该插件似乎有适度的文档,但如果你正在寻找更深入的东西来做同样的事情,我会查看jQuery BBQ:http://benalman.com/projects/jquery-bbq-插入/
这是$ .param实现被放入jQuery 1.4,它的deparam实现是目前唯一能够读取新格式的东西.此外,文档很棒.