Javascript Bootstrap3模式并不总是激活ajax代码
我相信有一个简单的答案,我只是似乎无法解决它 我使用引导模式从指定的url返回ajax内容。(在加载之间使用$.removeData()删除内容) 问题在于,在模式中显示的表单的内容上运行JS 我目前正在使用最终文件(由ajax返回)中的(简化): 编辑:以及其他事件处理程序(包括模式内的datepicker),但此代码仅加载一次,然后在重新加载整个页面之前无法再次激活 关闭代码:Javascript Bootstrap3模式并不总是激活ajax代码,javascript,jquery,ajax,twitter-bootstrap-3,Javascript,Jquery,Ajax,Twitter Bootstrap 3,我相信有一个简单的答案,我只是似乎无法解决它 我使用引导模式从指定的url返回ajax内容。(在加载之间使用$.removeData()删除内容) 问题在于,在模式中显示的表单的内容上运行JS 我目前正在使用最终文件(由ajax返回)中的(简化): 编辑:以及其他事件处理程序(包括模式内的datepicker),但此代码仅加载一次,然后在重新加载整个页面之前无法再次激活 关闭代码: $('#myModal, #myModalLg').on('hidden.bs.modal', function
$('#myModal, #myModalLg').on('hidden.bs.modal', function (e) {
$(e.target).removeData();
$(e.target).off('shown.bs.modal');
$('#myModal, #myModalLg').on('shown.bs.modal', function () {
$(this).find(':input:first')[0].focus();
});
});
我希望每次显示#myModalLg时处理程序都会运行,然后当它关闭时,它会删除已输入的内容并恢复,但每次似乎都不是这样运行的。您从未关闭Showed.bs.modal。您在JQuery中查看过该事件吗: 我不确定这是否会有帮助,但似乎您多次重新定义了show.bs.modal,您可能希望将其更改为一而不是打开
$('#myModal, #myModalLg').one('shown.bs.modal', function () {
$(this).find(':input:first')[0].focus();
});
你有没有考虑委托它(如果这个事件冒泡),例如:<代码> $(文档)。在(“隐藏.bS.Maldit”,'yyMyMaldia',y'MyMODALG',函数(e){…});<代码>?hidden.bs.modal代码每次都会运行,只有Showed.bs.modal代码在第二次加载时不会“刷新”。这似乎已经修复了它,一定发生了某种复制,如图所示。隐藏时关闭了bs.modal,但这似乎解决了问题!亲爱的,很高兴这一切对你有用!我正要跟进,如果还有问题,请告诉我
$('#myModal, #myModalLg').one('shown.bs.modal', function () {
$(this).find(':input:first')[0].focus();
});