javascript - 如何修复 JavaScript 插件仅适用于每隔一个部分页面 ajax 加载

标签 javascript c# html model-view-controller

我的问题是 bootstrap toggle 插件只能每隔一段时间工作一次。

我正在使用 bootstrap-toggle 为我的复选框提供更好的样式。

<link href="~/Content/bootstrap-toggle.min.css" rel="stylesheet">
<script src="~/Scripts/bootstrap-toggle.min.js"></script>

我在调用 ajax 时返回的部分 View 中使用这些。

这是我的实现示例:

@Html.EditorFor(model => model.Active, "", new { htmlAttributes = new { @id = "Active", data_toggle = "toggle", data_width = "100%", data_on = "Active", data_off = "Disabled" }})

在第一次加载 View 时,当我单击切换按钮时,它会切换到另一个值。如果我在不刷新页面的情况下关闭 View 已加载的窗口,重新打开窗口并单击切换按钮,则没有任何反应。

编辑:我还应该提到,如果我再次关闭 View 已加载的窗口而不刷新页面,请重新打开窗口并单击它起作用的切换按钮。问题不在于它只适用于初始负载,而是它在 50% 的时间内都在工作。

最佳答案

发生这种情况是因为脚本在您网页的元素上只设置了一次在页面加载后立即发生。之后,无论何时加载新的 DOM 元素(例如通过 AJAX 重新加载局部 View 时发生的情况),脚本都不会在新加载的元素中执行其设置例程。

通过 AJAX 加载新元素后,您应该对新加载的元素执行对 bootstrapToggle() 的 JavaScript 调用( checkout Bootstrap Toggle's API ),以便可以激活 Bootstrap Toggle 插件新加载的元素。

您应该在页面上加载新的 AJAX 元素后立即调用类似这样的方法:

// Replace by a selector which selects the elements which have been created
$('#myNewLoadedCheckboxElement').bootstrapToggle();

关于javascript - 如何修复 JavaScript 插件仅适用于每隔一个部分页面 ajax 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53945372/

相关文章:

javascript - Rails 3 - 设计 'Please enter an email address' 弹出消息,即使在禁用验证时也是如此

c# - 在 MahApps.Metro 中使用数据绑定(bind) ItemsControl 时显示 WindowCommands 的分隔符

javascript - 检查是否释放了 HTML 按钮

javascript - 我可以在 javascript 对象中使用数字吗?

javascript - 通过ajax请求填充js变量的正确方法

javascript - 仅在父元素内拖动指令?

c# - 使用 Ravendb 批量删除

c# - 如何在linq中加入连续的日期范围

javascript - 如何使用鼠标悬停在菜单上选择菜单,直到用户在菜单中选择一个选项

html - Canvas 1 应调整到窗口大小,Canvas 2 应固定大小