【发布时间】:2014-08-05 21:16:33
【问题描述】:
在使用 AJAX 将部分视图加载到页面上的对话框后,此代码(位于部分本身而不是主页中)运行并且我按预期获得选项卡:
// Run this on page load
$(function () {
debugger;
$("#ProjectTabset").tabs();
});
在这种情况下,如果包含部分的 div 从 DOM 中删除(使用 jQuery 删除)然后再次添加并再次加载部分,它应该再次运行,但它没有。
为什么它会第一次运行,但以后不会运行?问题可能是插入部分的 div 并没有以某种方式真正删除吗? (虽然我正在测试它在创建之前不存在,而且它似乎不再是 DOM 的一部分。)
如果我可以更清楚或提供更多细节,请告诉我:)
【问题讨论】:
-
你应该在ajax调用成功回调中调用
$("#ProjectTabset").tabs(); -
谢谢,我已经尝试过了,它有效,但我对为什么这段代码第一次运行但之后没有运行感兴趣。
-
您是否尝试过使用 $(document).find("#ProjectTabset").tabs();?
-
$(document).ready() 在文档准备好时运行。在事实之后附加 html 不会使文档没有准备好,一旦准备好,它总是准备好直到页面被卸载。 $(document).ready() 只被触发一次。您可以根据需要/需要多次绑定它,但每个都只会执行一次。
-
@KevinB,我认为,你应该发表你的评论作为答案。
标签: javascript jquery ajax asp.net-mvc