0

ここで作成したjsfiddleデモを参照してください。現在のクライアントのウェブサイトに、ディープリンク機能を追加しようとしています。

次の要件についてサポートが必要です。

私の単純なクリックtoggleClassコード:

$("div.contentBox").click(function () {

    var $this = $(this);
    // don't proceed if already selected
    var $previousSelected = $('.selected');
    if ( !$this.hasClass('selected') ) {
        $this.addClass('selected');
    }

    $previousSelected.removeClass('selected');  
});



<div class='contentBox'>(1)属性の値がそれぞれ異なる 反復が多くなりますtitle=''

$("div.contentBox").click()(2)からの値の追加によるイベントトリガーは、 http:title='' //site.com/index.html#content01-about-usのようなものを解き放ちます。注:これを実現する方法のサンプルコーディングを提供してください。

<div>(3)代わりにブロックを介してイベントをトリガーする理由は、コンテナー内の<a>追加<a>のタグによるものclass='contentBox'であり、最終的にはネストされた<a>リンクを形成しますが、これは許可されていません。

(4)$("div.contentBox").click()またtoggleClass'selected'

(5)リンク(例http://site.com/index.html#content01-about-us<div class='contentBox' title='content01-about-us> )から戻ると、ページの読み込みはaddClass/toggleクラスに到達するのに十分スマートになります'selected'

私はこれを理解するのに何週間も費やしましたが、役に立たないので、ここで必死に助けが必要です。ここにいる誰かが、述べられている要件に従って上記のjsfiddleデモを更新するのに十分親切であることが最善です。

自分でいくつかの調査を行い、 history.jsaddress.jsBBQプラグインに出くわしましたが、動作させることができません



でした。よろしくお願いします。

4

1 に答える 1

1

次のようなものが必要ですか。

$("div.contentBox").click(function () {

var $this = $(this);
// don't proceed if already selected
var $previousSelected = $('.selected');
if ( !$this.hasClass('selected') ) {
    $this.addClass('selected');
}
$previousSelected.removeClass('selected');  

if(location.href.indexOf('#') == -1)
  location.href += "#" + $(this).prop("title");
else
  location.href = location.href.split('#')[0] + "#" + $(this).prop("title");
alert(location.href);
});

2 番目の要件については、次のとおりです。

$(document).ready(function() {
  if(location.href.indexOf('#') != -1){
    var page = location.href.split('#')[1];
    $("div[title*=" + page + "]").addClass('selected');
  }
});
于 2013-02-21T07:24:38.993 に答える