Jquery 引导确认未绑定到动态元素?
我有一个表单,它使用AJAX在页面上加载动态内容。我还使用了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-
引导确认
,用于确认取消请求的功能。初始加载页面时,确认生效
下面是示例代码:
$(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')。删除()代码>谢谢,但同样的问题仍然存在<代码>引导确认
在单击按钮之前绑定到该按钮,但之后不绑定。