0

記事ごとにjqueryエクスパンダーボックスを備えた電子ニュースレターを作成しています。デフォルトでは、各エキスパンダーボックスは閉じています。各号の前に、各記事へのリンクを記載したメールティーザーを送信します。ティーザーのコードで(またはおそらく名前付きリンクのクラス内で)リンク先の記事を拡張する方法があるかどうか疑問に思っています。参考までに、jqueryファイルはここにあります:http://jjnursingnotes.com/NOV12/jquery.expander.js

ニュースレターのHTMLは次のとおりです。divレイヤー「expander」内のコンテンツは、 http://jjnursingnotes.com/NOV12#01へのリンクがメールティーザーに挿入されたときに表示したいものです。

<div class="expander">
    <a name="01"></a>
    <h1>Title</h1>
    <h2>Subtitle</h2>
    <h3>content</h3>
</div>
4

1 に答える 1

1

エクスパンダプラグインの詳細を見ずに、最近自分のサイトの1つで使用したソリューションを次に示します。うまくいけば、使用しているエキスパンダープラグインで動作するようにカスタマイズできます。私は可変構文解析の功績を認めることができません。これは他の場所で発生したものです。

リンクは次のように設定する必要があります。

http://jjnursingnotes.com/NOV12?section=01

次に、JavaScript:

<script type="text/javascript">
// Redirect to Appropriate Section
var urlParams = {};
(function () {
    var match,
        pl     = /\+/g,  // Regex for replacing addition symbol with a space
        search = /([^&=]+)=?([^&]*)/g,
        decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
        query  = window.location.search.substring(1);

    while (match = search.exec(query))
       urlParams[decode(match[1])] = decode(match[2]);
})();

$(document).ready( function(){
    if ( urlParams['section'] != '' ) {
        // urlParams['section'] variable = the ?section=XXX part of URL
        // Here is where you would need integration with expanding box

        // Assuming you use something like <div class="expander" id="sect01">
        // as your expander, something to this effect ought to work:

        $("#sect" + urlParams['section'] ).find(".read-more a").click();

        // Position document at start of anchor 
        $('body,html').animate({ scrollTop: $("#sect" + urlParams['section'] ).offset().top }, 500 );
    }
});
</script>
于 2012-11-12T19:46:33.440 に答える