Jquery 引导确认未绑定到动态元素?

Jquery 引导确认未绑定到动态元素?,jquery,twitter-bootstrap-3,event-delegation,bootstrap-confirmation,Jquery,Twitter Bootstrap 3,Event Delegation,Bootstrap Confirmation,我有一个表单,它使用AJAX在页面上加载动态内容。我还使用了引导确认,用于确认取消请求的功能。初始加载页面时,确认生效 下面是示例代码: $(function() { $('[data-toggle=confirmation]').confirmation({ rootSelector: '[data-toggle=confirmation]', popout: true }); $(document).on('submit', '#some-

我有一个表单,它使用AJAX在页面上加载动态内容。我还使用了
引导确认
,用于确认取消请求的功能。初始加载页面时,确认生效

下面是示例代码:

$(function() {

    $('[data-toggle=confirmation]').confirmation({
      rootSelector: '[data-toggle=confirmation]',
      popout: true
    });

    $(document).on('submit', '#some-form', function(e) {
      e.preventDefault();

      submitForm();
    });


    $('.static-element').on('click', '.cancel-request', function() {
      cancelRequest();
    });
}
.cancel request
的单击事件对动态内容有效,但确认不起作用。我尝试将单击处理程序上的选择器更改为
document
,但没有任何区别。我就是找不到将确认绑定回动态元素的方法

我尝试在
cancelRequest()
上创建一个回调,然后在其中重新初始化
bootstrap confirmation
,但没有什么不同。我还尝试在
complete:
选项中重新序列化它,但也没有成功


我尝试了其他一些SO答案,但它们在我的情况下不起作用。

您的JSFIDLE正在删除将JQuery侦听器绑定到的元素。另一种方法是简单地操作您正在替换的元素,这样您就不必与瞬态元素进行斗争

//from your JS fiddle at https://jsfiddle.net/6wrb01u6/6/
$('[data-toggle=confirmation]').confirmation({
  rootSelector: '[data-toggle=confirmation]',
  // other options
});

$('#replace').on('click', '.do-something', function() {
  var html = "content";
  $.ajax({
    url: "/echo/html/",
    type: "POST",
    data: html,
    dataType: "HTML",
    success: function(data) {
      $('#replace>span').removeClass('do-something').removeClass('btn-primary');
      $('#replace>span').addClass('cancel').addClass('btn-danger');
      $('#replace>span').html('Cancel');
      $('.content').remove();
      $('#replace').append('<p class="content">New content</p>');
    }
  });
});

$('#replace').on('click', '.cancel', function() {
  $('.content').remove();
});
//从您的JS小提琴https://jsfiddle.net/6wrb01u6/6/
$(“[数据切换=确认]”)。确认({
根选择器:“[data toggle=确认]”,
//其他选择
});
$('#replace')。在('click','do something',function()上{
var html=“content”;
$.ajax({
url:“/echo/html/”,
类型:“POST”,
数据:html,
数据类型:“HTML”,
成功:功能(数据){
$('#replace>span').removeClass('do-something').removeClass('btn-primary');
$('#replace>span').addClass('cancel').addClass('btn-danger');
$('#replace>span').html('Cancel');
$('.content').remove();
$(“#替换”)。追加(“

新内容”

”; } }); }); $('#replace')。在('单击','.cancel',函数()上{ $('.content').remove(); });
请创建一个有确切问题的
jsfiddle
。我尝试过,但无法在jsfiddle中获得引导确认。虽然确认不起作用,但它仍然表现出相同的行为。如果在单击按钮之前检查该按钮,则该按钮已绑定到该按钮,而在单击按钮之后则未绑定到该按钮。给你一个解决方案<代码>内容是
而不是
id
。将取消的单击事件更改为
$('.content')。删除()谢谢,但同样的问题仍然存在<代码>引导确认
在单击按钮之前绑定到该按钮,但之后不绑定。