Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 引导模式在通过AJAX回调修改DOM时消失_Jquery_Ajax_Twitter Bootstrap 3 - Fatal编程技术网

Jquery 引导模式在通过AJAX回调修改DOM时消失

Jquery 引导模式在通过AJAX回调修改DOM时消失,jquery,ajax,twitter-bootstrap-3,Jquery,Ajax,Twitter Bootstrap 3,我有一个引导模式,它有一组链接,每个链接都会触发AJAX调用。用户可以单击这些链接并继续在模式上进行其他工作。预期AJAX成功回调将自动修改父HTML文档中的其他DOM元素 我能够成功地加载模式、调用AJAX调用并修改底层DOM以显示必要的信息。但是,只要修改DOM,该模式就会从屏幕上消失,并且屏幕处于禁用状态。我检查了HTML,发现模态不可见,但主体将类设置为modal open 我不知道我的错误是什么,但我很感激你的帮助。下面的代码片段显示了当用户单击元素内部的某个内容时的AJAX调用 $(

我有一个引导模式,它有一组链接,每个链接都会触发AJAX调用。用户可以单击这些链接并继续在模式上进行其他工作。预期AJAX成功回调将自动修改父HTML文档中的其他DOM元素

我能够成功地加载模式、调用AJAX调用并修改底层DOM以显示必要的信息。但是,只要修改DOM,该模式就会从屏幕上消失,并且屏幕处于禁用状态。我检查了HTML,发现模态不可见,但主体将类设置为
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中使用class
links
,包含了模式对话框的代码-当我进行第二次AJAX调用时,这被删除和覆盖了。因此,我将模态对话框代码从该DIV移动到实际的
body
元素