我正在使用第三方标签控件,它是名为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>
更改标签后单击此按钮将重新绑定我的脚本。
我假设的下一步是找到告诉我标签已完成加载的事件,但到目前为止我一直没有成功
我尝试选择tab容器并在.load()和.ajaxComplete()上运行BindControlEvents函数,但仍然没有成功。
是否有其他方法可以找出标签何时完全加载。我知道我可能没有太多的工作,但这是我所知道的。
感谢您的帮助
标记
答案 0 :(得分:0)
也许有一个部分回发没有被拦截,尝试在你的js中添加以下内容,在jquery init之外:
<script type="text/javascript">
Sys.Application.add_load(BindControlEvents);
function BindControlEvents() {
[...]
</script>
希望这有帮助, 人