Jquery 引导模式在通过AJAX回调修改DOM时消失
我有一个引导模式,它有一组链接,每个链接都会触发AJAX调用。用户可以单击这些链接并继续在模式上进行其他工作。预期AJAX成功回调将自动修改父HTML文档中的其他DOM元素 我能够成功地加载模式、调用AJAX调用并修改底层DOM以显示必要的信息。但是,只要修改DOM,该模式就会从屏幕上消失,并且屏幕处于禁用状态。我检查了HTML,发现模态不可见,但主体将类设置为Jquery 引导模式在通过AJAX回调修改DOM时消失,jquery,ajax,twitter-bootstrap-3,Jquery,Ajax,Twitter Bootstrap 3,我有一个引导模式,它有一组链接,每个链接都会触发AJAX调用。用户可以单击这些链接并继续在模式上进行其他工作。预期AJAX成功回调将自动修改父HTML文档中的其他DOM元素 我能够成功地加载模式、调用AJAX调用并修改底层DOM以显示必要的信息。但是,只要修改DOM,该模式就会从屏幕上消失,并且屏幕处于禁用状态。我检查了HTML,发现模态不可见,但主体将类设置为modal open 我不知道我的错误是什么,但我很感激你的帮助。下面的代码片段显示了当用户单击元素内部的某个内容时的AJAX调用 $(
modal open
我不知道我的错误是什么,但我很感激你的帮助。下面的代码片段显示了当用户单击元素内部的某个内容时的AJAX调用
$(document).on('click', '.link', function() { //this is when the user clicks on a link in the modal
if ( $( this ).hasClass( 'linked' ) ) {
$( this ).removeClass( 'linked' );
} else {
$( this ).addClass( 'linked' );
}
$.ajax({
url: '/cake/mycontroller/link/' + $(this).parents('div#link-row').data('object-id') + '/' + objId,
type: 'POST',
cache: false,
success: function(response) {
var res = $.parseJSON(response);
if (res.success) {
alert('success');
//this second ajax call is to refresh the contents of a particular DIV in the screen
$.ajax({
url: '/cake/candidatesjobs/index/' + jobId,
type: 'ajax',
success: function(data) {
$('.links').html(data.content);
}
});
} else {
//fail
}
}
});
});
好的,解决了
问题是我在DIV中有模态代码,第二次AJAX调用刷新了模态代码——换句话说,模态的底层代码被第二次AJAX调用删除并重新加载。为了解决这个问题,我将模式代码从DIV移到了main
标记,问题就解决了。在成功返回ajax调用后,您是否使用alert()检查了data.content的输出?另外,我认为更改链接对象本身的html不是一个好主意,因为它会干扰引导默认设置。改为尝试更改href或onclick()属性。我刚刚解决了这个问题-我在DIV中使用classlinks
,包含了模式对话框的代码-当我进行第二次AJAX调用时,这被删除和覆盖了。因此,我将模态对话框代码从该DIV移动到实际的body
元素