我正在撰写一个使用图片地图的网页。图像和地图是动态加载的。如果我单击区域元素,则会加载新内容。此外,url也会更改其哈希值(例如index.php#somepage)。我有三层页面,主层(主页)有自己的图像和地图(index.php),第二层提供新图像+地图(index.php#somepage),第三层打开覆盖第二层,因此更改哈希(index.php#somepage_somesubpage)。
我现在希望能够向某人发送一个指向index.php#somepage_somesubpage的链接。所以我切片哈希并在第一级触发imagemap的click方法,以在加载页面时加载index.php#somepage。我添加了一个回调函数,调用现在更新的imagemap所需的click方法。由于某些我无法弄清楚的原因,这不起作用。我可以打开index.php#somepage,但是当我输入index.php#somepage_somesubpage时,我最终得到了相同的结果。
这是$(document).ready:
的代码var cont = $('#content');
$( document ).ready(function() {
cont.load('pages/home.php', function(responseTxt,statusTxt,xhr){
if(statusTxt=='error')
{
cont.load('404.php');
}
lineparser('#content'); //Perform some fancy stuff on the page
var hash = location.hash.replace('#', '');
if (hash != ''){
if(hash.indexOf('_') > 0)
{
//open page with content
$('area[href~="#' + hash.slice(0, hash.indexOf('_')) + '"]').first().trigger("click", function(){
$('area[href~="#' + hash + '"]').first().trigger("click");
});
}
else{
//open menu page
$('area[href~="#' + hash + '"]').first().trigger("click");
}
}
});
});
答案 0 :(得分:0)
我解决了这个问题:
$('area[href~="#' + hash.slice(0, hash.indexOf('_')) + '"]').first().trigger("click", [hash]);
然后我添加了以下内容:
$(document.body).on('click', "map area", function(e, schachteln){
...
if(schachteln){
$('area[href~="#' + schachteln + '"]').first().trigger("click");
}
}