我有一个网页,其中有两个下拉菜单。当您更改一个下拉列表时,我转到服务器并更新第二个下拉列表中的值。由于这需要几秒钟,因此我在下面的代码中显示了等待时的ajax加载图像。
这个问题是,因为我在运行后使用insert,所以当它运行时,它将第二个下拉列表推到几个像素上,当其完成时,下拉列表会向后移。
避免这种情况的最佳方法是什么。我不知何故需要使用与图片相同的wdith占位符,因此当我显示它时,它会使其他所有内容保持不动。
var spinner = $("<img src='/Content/images/ajax-loader.gif' />").insertAfter(item);
$.getJSON("/GetId/" + item.val(), function (data) {
if (data.Id > 0) {
$("#SecondDropdown").val(data.Id);
}
spinner.remove();
});
最佳答案
位置:将微调器放在一切上方的容器中的绝对位置,这是我一直以来的工作方式。<body> <div id='ajax_loader'></div> <div> <select name='1'> <option value='yes'>Yes</option> <option value='no'>No</option> </select> <select name='2'> <option value='yes'>Yes</option> <option value='no'>No</option> </select> </div></body>
基本上,将带有ajax加载器的div首先放在文档中,并根据需要隐藏和显示它。
关于jquery - 在jquery中,如何显示不带右移控件的ajax进度图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5698223/