0

我正在使用第三方选项卡控件,它是名为 Active Social 的 DotNetnuke 模块的一部分,我没有相关文档。问题是当我更改选项卡时,我丢失了一个 js (masonry.js),它设置了选项卡中加载的内容的样式。我需要重新绑定脚本但没有成功

这是我到目前为止所拥有的。

我正在使用我在以前的项目中使用过的重新绑定方法

function BindControlEvents() {
        //jQuery is wrapped in BindEvents function so it can be re-bound after each callback.
        var $container = $('.addMasonry');
        $container.imagesLoaded(function () {
            $container.masonry({
                itemSelector: '.explore-image',
                columnWidth: 10,
                isFitWidth: true
            });

        });

    }
    //Initial bind
    $(document).ready(function () {
        BindControlEvents();
    });

// 重新绑定回调 var prm = Sys.WebForms.PageRequestManager.getInstance();

    prm.add_endRequest(function () {
        BindControlEvents();
    });

但是,当更改选项卡时,这不会重新绑定。所以我在页面上创建了一个按钮

 <li><a onclick="BindControlEvents();" href="#">re-bind</a></li>

选项卡更改后单击此按钮将重新绑定我的脚本。

我假设的下一步是找到告诉我标签已完成加载但到目前为止我没有成功的事件

我尝试选择选项卡容器并在 .load() 和 .ajaxComplete() 上运行 BindControlEvents 函数,但仍然没有成功。

是否有任何其他方法可以找出选项卡何时完全加载。我知道我可能不会付出太多努力,但这就是我所知道的。

谢谢您的帮助

标记

4

1 回答 1

0

也许有一个没有被截获的部分回发,尝试在你的 js 中添加以下内容,在 jquery init 之外:

    <script type="text/javascript">
    Sys.Application.add_load(BindControlEvents);

    function BindControlEvents() {
    [...]
    </script>

希望这会有所帮助,人。

于 2012-05-30T23:25:55.677 回答