Bootstrap模态隐藏事件通过ajax重新加载身体

时间:2017-04-07 23:46:20

标签: javascript jquery ajax twitter-bootstrap

我有一个弹出模态并使用bookmark='' urlbase = 'https://..../?' alldata = [] while True: if len(bookmark)>0: url = urlbase + 'bookmark=' + bookmark requests.get(url, auth=('username', 'password')) data = response.json() alldata.extend(data['rows']) bookmark = data['bookmark'] # Check `alldata` instead of `data["rows"]`, # and set the limit to 200k instead of 200. if len(alldata) >= 200000: break 事件的页面,我想通过ajax重新加载相同的页面内容,例如hidden.bs.modal标记body。我有以下代码:

html

在上面的代码中,$("#actions-modal").on('hidden.bs.modal', function(){ alert(document.location) $.ajax({ url: document.location, type: "get", sucess: function(data){ alert('hhhh') return $("#body1").html($(data).find('#body1')); }, error: function(xhr){ console.log(xhr); } }) }) 运行正常。但是,ajax的alert(document.location)处理程序中的alert('hhhh')和ajax 的错误处理程序中的success都不起作用。即没有console.log(xhr)也没有success!此外,浏览器控制台中没有任何错误。

2 个答案:

答案 0 :(得分:0)

document.location会返回对象,因此请尝试使用document.location.href,它会返回URL字符串。然后AJAX调用将开始工作。

答案 1 :(得分:0)

从成功功能中删除return。更改元素的html时,您不需要返回。只有在做这样的事情时才需要返回:

function getHTML() 
{
    $.ajax({
            url: document.location,
            type: "get",
            sucess: function(data){
                return data;
            },
            error: function(xhr){
                return "Failed";
            }
    });
}

var myHTML = getHTML();
$('#body1').html(myHTML);

但是,当您立即设置html时,您不需要它。