我想根据点击加载不同的json数据:
<a href="#jsonAlpha">Get Alpha json</a>
<a href="#jsonBeta">Get Beta json</a>
// and so on.
js:
$( "a" ).click(function() {
$.ajax({
url: 'domain.com/json?source=jsonAlpha',
success: function( jsonData ) {
console.log(jsonData)
}
})
});
因此链接中的每个哈希都与json源查询匹配。
检测点击链接中的哈希值然后将哈希值传递给json url的最佳方法是什么?
换句话说:
if clicked link is href == jsonAlpha add this hash into ajaxUrl
你明白我的意思吗?
答案 0 :(得分:1)
要实现此目的,请在hashchange
上收听window
事件。如果用户单击包含URL片段的链接,或者他们已将包含片段的URL键入浏览器的URL栏,则会发生这种情况:
$(window).on('hashchange', function(e) {
$.ajax({
type: 'get',
url: 'http://www.yourdomain.com/json',
data: {
source: window.location.hash.substring(1)
},
success: function( jsonData ) {
console.log(jsonData)
}
})
});
请注意,我将方案添加到跨域请求所需的URL中。另请注意,如果这是跨域请求,则接收域将需要在响应中包含CORS标头,否则您将被Same Origin Policy
阻止处理响应答案 1 :(得分:0)
您可以使用attr()
函数获取所点击锚标记的href
。
假设您要在#
中附加url
前面的文字。
$( "a" ).click(function() {
$.ajax({
url: 'domain.com/json?source='+$(this).attr('href').slice(1),
success: function( jsonData ) {
console.log(jsonData)
}
})
});