0

ここでこのポートフォリオ スクリプトを変更しようとしています: http://themes.iki-bir.com/webpaint/multipage/full/portfolio.html

(要素のインデックス番号を使用してアイテムをディープリンクする) のような URL を#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>
4

1 に答える 1

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);
} 

$containerclass を使用してすべての要素を単純に繰り返し処理し、URL ハッシュの要素と一致する.itemかどうかを確認します。data-event-id存在する場合は、それを保管し、後で操作を行ってください。

于 2013-09-23T09:46:04.057 に答える