我正在尝试修改此组合脚本:http://themes.iki-bir.com/webpaint/multipage/full/portfolio.html
它使用#entry-12
之类的网址(使用元素的索引号来深度链接项目),我想将其更改为#this-is-an-item
updateURLParameter(thumb.attr("data-event-id"));
//updateURLParameter("entry-"+thumb.index());
它在这里设置名称(工作正常)...现在它是whatever.html#this-is-an-item
但是现在我需要在从URL链接时更改行为(因为它仍然无法正常工作,因为它仍然在寻找索引号而不是名称)。
var deeplink = getUrlVars("#");
// DEEPLINK START IF NECESSARY
if (deeplink[0].split('entry-').length>1) {
var thmb = parseInt(deeplink[0].split('entry-')[1],0)+1;
$container.find('.item:nth-child('+thmb+')').click();
$container.find('.item:nth-child('+thmb+')').addClass("active").children('a').children('div').fadeIn(300);;
}
我只是不确定如何处理最后一部分,所以它会查找data-event-id而不是索引?
<li class="item installation 2013-10-13" data-event-id="installation-opening-whispering-in-the-leaves"... </li>
答案 0 :(得分:0)
试试这个:
var deeplink = getUrlVars("#");
var $elem;
// v--- this can be changed to .find('.item) if needed.
$container.children('.item').each(function() {
// you can use .data(...) instead of .attr("data-...")
if ($(this).data("event-id") == deeplink[0])
$elem = $(this);
});
if ($elem) {
$elem.click()
.addClass("active")
.children('a')
.children('div')
.fadeIn(300);
}
简单地使用类$container
遍历.item
中的所有元素,并检查data-event-id
是否与URL哈希中的匹配。如果是,请存储它,然后再进行操作。