Jasny Bootstrap offcanvas菜单 - ajax' close'导致解雇问题

时间:2015-12-27 15:42:02

标签: javascript jquery css ajax jasny-bootstrap

问题背景:

JSFiddle - https://jsfiddle.net/k9K5d/200/embedded/result/

我正在使用Jasny Bootsrap来开发一个' off-canvas'滑出菜单。

问题:

菜单滑出时,按下切换按钮时也会正常关闭。当通过代码使用ajax调用关闭菜单时会出现问题。

在菜单中,我有一个按钮(标记为' Click'),它进行ajax调用以将一些数据附加到div。在ajax通话的Success方法中,我称之为Jasny' hide'应该关闭菜单的方法。

菜单确实解雇但通常是'身体'在菜单滑动之前视图正在关闭,如红色箭头所示:

enter image description here

守则:

以下显示我的代码,用于调用要附加到div的数据,然后关闭画布菜单:

$('#navBtn').click(function() {

var jsonData = {
    "values" : ["Test1", "Test2"]
    }

$.ajax({
  type: 'POST',
  dataType: 'json',
  url: '/echo/json/',
  data : { json: JSON.stringify( jsonData ) },
  success: function(data)
  {
    var arraySize = data.values.length;

    $('#arrayHolder').html(arraySize);

    closeMenu();
  }

});

});


function closeMenu()
{
    $('.navmenu').offcanvas('hide');
}

我提供了一个JSFiddle来显示:https://jsfiddle.net/k9K5d/200/

第二次点击ajax调用时出现此问题'点击'按钮。

任何帮助解决为什么ajax调用关闭代码导致这种风格的原因都很棒。

2 个答案:

答案 0 :(得分:0)

尝试使用.promise().done()

$('#arrayHolder').html(arraySize).promise().done(function(){
   closeMenu();
});

答案 1 :(得分:0)

让你的功能像这样。工作正常。

function closeMenu()
{
     $('.navbar-toggle').click()
}