从其他页面单击链接时,如何执行jquery操作?

时间:2012-11-12 19:42:10

标签: jquery hyperlink expander

我正在为每篇文章创建一个带有jquery扩展框的电子通讯。默认情况下,每个扩展器框都已关闭。我们会在每期问题之前发送电子邮件预告片,并附上每篇文章的链接。我想知道是否有任何方法可以扩展我在预告片代码中链接的文章(或者可能在指定链接的类中)。作为参考,可以在此处找到jquery文件:http://jjnursingnotes.com/NOV12/jquery.expander.js

简讯的HTML如下。当将http://jjnursingnotes.com/NOV12#01的链接插入电子邮件预告片时,div图层“扩展器”中的内容就是我想要显示的内容。

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

1 个答案:

答案 0 :(得分: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>