jQuery地址插件帮助
我在研究如何使用jQuery地址插件时遇到了一点困难,因为我的jQuery/javascript知识有限,我会认真地寻找一些帮助 到目前为止,我的代码如下所示:jQuery地址插件帮助,jquery,ajax,jquery-plugins,browser-history,Jquery,Ajax,Jquery Plugins,Browser History,我在研究如何使用jQuery地址插件时遇到了一点困难,因为我的jQuery/javascript知识有限,我会认真地寻找一些帮助 到目前为止,我的代码如下所示: jQuery(function($) { $.ajaxSetup({ cache: false }); var hijax = $('ul.hijax a'); var loader = $('<div id="spinner"></div>'); var container = $('#
jQuery(function($) {
$.ajaxSetup({ cache: false });
var hijax = $('ul.hijax a');
var loader = $('<div id="spinner"></div>');
var container = $('#ajax-container');
hijax.address(function() {
dis = $(this);
hijax.removeClass('ajax-on');
dis.addClass('ajax-on');
var url = dis.attr('href') + ' #biog-container';
container.html(loader).load(url);
return dis.attr('id');
});
});
jQuery(函数($){
$.ajaxSetup({cache:false});
var hijax=$('ul.hijax a');
变量加载器=$('');
var container=$(“#ajax container”);
地址(函数(){
dis=$(本);
removeClass('ajax-on');
dis.addClass('ajax-on');
var url=dis.attr('href')+'#biog container';
container.html(loader.load)(url);
返回dis.attr('id');
});
});
我希望这是一种自我嘲讽。我有一个ul
的页面链接,我通过AJAX加载div
的内容,其中id
为biog container
。AJAX工作正常,url使用链接的id
s进行更新,但当我单击后退按钮时,url会更改,但内容保持不变
有什么想法吗,我是不是很蠢 老实说,
address
方法对您的工作没有太大影响。实际上,插件并不会自动添加支持
然而,这很简单。您只需为change
方法设置处理程序:
$.address.change(function(e){
// The function receives a single eventobject parameter that contains the
// following properties:
// value, path, pathNames, parameterNames,
// parameters, queryString
/* Do something based on e */
});
当地址更改时,您的函数将被激发。还有其他事件internalChange
和externalChange
,您可以设置在地址发生内部或外部更改时触发这些事件
编辑:仅对上述内容进行扩展: 这是一个完整的it工作示例。换句话说,您不需要调用插件中的任何其他内容即可使其工作:
// Override the click events of links
$("a").click(function(e) {
e.preventDefault();
$.address.path(this.id);
});
// Method called with the address changes
$.address.change(function(e) {
// This is called when the
$("#content").html("Something based on " + e.value);
});
- jsFiddle:
- 完整浏览器示例:(查看后退/前进)
- 直达深层链接:
$.address.change
位设置处理程序。这是加载内容的地方。在我的示例中,它使用e.value
获取地址路径的值。因此,这类似于/link1
,/link2
,等等。当链接在内部(通过插件)或外部(通过浏览器向后/向前)更改时,会调用此处理程序
注意:我注意到jQuery 1.5.1不能完美地实现这一点。我很确定这与jQuery1.5属性选择器(address插件似乎在使用)的更改有关。jQuery 1.4运行良好。我应该补充一点,我的链接是我正在创建的常规链接,因此链接将指向一个真实的网页,例如:mywebsite.com/this/page/right/here/Hi@Jonathan,感谢您的回复。恐怕你给我定的标准太高了一点!我只是一个卑微的设计师,尽管我尽了最大的努力,我还是无法让我的大脑明白如何处理这些信息。还有小费吗?!干杯:)嗨,安迪-我给你做了一个更新。希望它能进一步解释:)伙计,那太棒了!我搞不懂的是如何将单击链接的url传递到address.change函数@Richard传递给
address.change
函数的值来自location对象上的散列。在上面的示例中,我通过调用$.address.path(this.ID)
将此值设置为链接的ID。如果要将此值设置为单击链接的URL,请将其更改为$.address.path(this.href)代码>