Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Twitter引导确认对动态生成的元素无效_Jquery_Ajax_Twitter Bootstrap_Document Ready_Confirmation - Fatal编程技术网

Jquery Twitter引导确认对动态生成的元素无效

Jquery Twitter引导确认对动态生成的元素无效,jquery,ajax,twitter-bootstrap,document-ready,confirmation,Jquery,Ajax,Twitter Bootstrap,Document Ready,Confirmation,我正在使用DataTable,在页面加载时生成动态内容。 在表中,我使用了引导确认。 在脚本下面加载它 $( document ).ajaxStop(function() { $(document).find('[data-toggle="confirmation"]').confirmation(); }); 它会打开确认框,但当单击“是”或“否”时,它不工作 这不起作用 我有以下代码来检测“已确认”事件 $(document).ready(function(){ $(doc

我正在使用DataTable,在页面加载时生成动态内容。 在表中,我使用了引导确认。 在脚本下面加载它

$( document ).ajaxStop(function() {
    $(document).find('[data-toggle="confirmation"]').confirmation();
});
它会打开确认框,但当单击“是”或“否”时,它不工作

这不起作用 我有以下代码来检测“已确认”事件

$(document).ready(function(){
    $(document).find('.delete-record').on('confirmed.bs.confirmation', function() {
        var thisEl = $(this);
        deleteForm($(this).attr('data-delid'));
    });
});
这是有效的
文档有什么问题。准备好了吗?

编辑:
我有与
文档相同的代码。准备好了
在其他页面上工作,但没有DataTable,它是HTML DIV结构。

尝试稍微更改事件绑定,以便对每个现有和将来都进行绑定。使用
语法上的备用
$删除记录元素

$(document).ready(function(){
    $('body').on('confirmed.bs.confirmation', '.delete-record', function() {
        deleteForm($(this).attr('data-delid'));
    });
});

由于不知道您的页面结构,我选择绑定到
body
,但您可以将其绑定到表的任何父元素。

我认为这是因为文档准备就绪后,dom操作会动态生成元素

.delegate
代替
.ready
怎么样

$(document).delegate('.delete-record', 'confirmed.bs.confirmation', function() {
    deleteForm($(this).attr('data-delid'));
});
同样的问题…
花点时间来理解插件
很简单:

my_new_dynamic_element.on('confirmed.bs.confirmation', function(){alert('ok')}).confirmation();
一个更简单的解决方案: 您有一个类似于

$('[data-toggle="confirmation"][data-target="service"]').confirmation({});
将其放在$(document).ready(function(){})之前的函数中; 并在加载动态内容后调用它

function confirm(){
    $('[data-toggle="confirmation"][data-target="service"]').confirmation({
        your options come here
    });
}
$(document).ready(function(){
    confirm();
});

.delete记录元素是动态添加的还是始终在页面上?它第一次来自PHP脚本,并且在页面上加载DataTable会自动加载数据,所以它会在页面上响应。我的意思是永远在页面上。之前和之后。天哪!我怎么忘了使用事件委派?每次我用这个,我都没注意到。非常感谢你。它成功了,我已经将它绑定到
文档
尽管采用了上面建议的事件绑定,我似乎也遇到了同样的问题。jQuery 1.11.2和Bootstrap Confirmation 2.1.3我的jsfiddle我的问题实际上是根本没有显示的popover。在生成新DOM后重新初始化插件,使其正常工作。我的问题略有不同,但
deleteForm($(this.attr('data-delid'))这行打开我的灯泡!!!:D:D非常感谢。两者都一样,只是版本问题。在1.4.3中有委托,但在1.7以上的版本中,
.delegate()
已被
.on()
方法取代。这与上面的正确答案相同。不过,谢谢你的指点。
function confirm(){
    $('[data-toggle="confirmation"][data-target="service"]').confirmation({
        your options come here
    });
}
$(document).ready(function(){
    confirm();
});