【问题标题】:JavaScript/jQuery doesn't work on Editor/Display templates loaded with AjaxJavaScript/jQuery 不适用于使用 Ajax 加载的编辑器/显示模板
【发布时间】:2014-10-14 04:53:53
【问题描述】:

我为我的整个对象下线创建了编辑器和显示模板。

现在内部对象的文本框之一应该是日期选择器。

问题是它是在使用Ajax 初始加载后加载的,并且包含的​​脚本不起作用。

我尝试在模板底部包含以下脚本,脚本渲染但什么也不做:

@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquerytimepicker")

<script type="text/javascript">
  alert('dddddddddddddddddddddddddd');
  $('.time-picker').timepicker();
</script>

在上面的代码中,我还添加了一个虚拟警报,以证明脚本没有运行,这使问题变得更加简单:“如何从模板和部分视图运行脚本?”。

我尝试将脚本包含在外部页面中定义的部分中,但这不起作用,因为模板和部分视图无法按设计包含部分 (Read this)。

【问题讨论】:

    标签: javascript asp.net-mvc razor mvc-editor-templates display-templates


    【解决方案1】:

    它不起作用是因为将timepicker附加到html的js运行在document.ready,但是通过ajax加载的内容是在document.ready之后加载的

    所以需要在ajax请求完成后再次调用附加timepicker的方法

    你可以试试这个:

    $(document).ajaxComplete(function(event, xhr, settings) {
        alert('an ajax request completed');
        $('.time-picker').timepicker();
    });
    

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      相关资源
      最近更新 更多