javascript - 显示 Bootstrap 模式时链接的 JavaScript 不起作用

标签 javascript twitter-bootstrap modal-dialog

显示 Bootstrap 模式后,我的应用程序 JavaScript 无法正常工作。

当我从控制台执行 JavaScript 时,它可以工作,但我的应用程序 JavaScript 不起作用。

有人可以给我建议如何解决这个问题吗?

HTML 文件:

<button type="button" class="btn btn-primary" id="save-category">Save changes</button>

JavaScript 文件:

var jquery = jQuery.noConflict();

jquery(window).load(function() {

jquery('#add-category').click(function() {
    jquery.get('api/categories/add', function(data) {
        jquery('#modal-target').replaceWith(data);
        jquery('#myModal').modal('show');
    });
});

jquery('#save-category').click(function() {
    jquery('#myModal').modal('hide');
});

});

最佳答案

这里发生的情况是,#save-category 按钮未注册到您在页面首次加载时创建的事件。这是因为bootstrap将原来的DOM元素移动到了模态窗口,从而丢失了原来的点击事件。

尝试使用委托(delegate)而不是事件绑定(bind)

jquery('#add-category').click(function() {
    jquery.get('api/categories/add', function(data) {
        jquery('#modal-target').replaceWith(data);
        jquery('#myModal').modal('show');
    });
});

jquery(document).on('click', '#save-category', function() {
    jquery('#myModal').modal('hide');
});

关于javascript - 显示 Bootstrap 模式时链接的 JavaScript 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24969621/

相关文章:

jquery - 单击 #id 后删除 jQuery 事件(或防止第二次单击)

javascript - 如何更改模式的代码,以便它与类而不是 href 一起使用?

javascript - 在 AngularJS 中定义 Controller 的两种方法?

html - 如何使用 Twitter Bootstrap ?

css - 关闭模态窗口后,模态焦点高亮保留在元素上

html - Bootstrap Modal 按钮不起作用,仅适用于 iOS

javascript - 如何将 $scope 对象注入(inject)对话框模板?

javascript - Chrome 扩展 onMessage 的奇怪行为

javascript - 使用 GetElementById 时更改图像不透明度

javascript - 将 HTML 模板插入到 tinymce 4 编辑器中