刷新元素(没有ajax调用)

时间:2013-05-26 18:22:56

标签: javascript jquery css

有元素:

#profile_search_bottom {
    position: absolute;
    bottom: 10px;
    left: 0;
    border-top-style: solid;
    border-color: #f7f7fe;
    background-color: ghostwhite;
    height: 50px;
    width: 100%;

}

它放在页面的底部,它适用于我,直到调用一个JS函数,这扩展了页面内容(此处没有其他问题)。

实际上,在完全重新加载的情况下扩展页面会根据需要放置这个元素,但是在AJAX操作时,这个元素保持不变,现在它位于页面的中间。

我想重新加载它,我想这里没有必要,在AJAX中,因为我只需要告诉浏览器:“嘿,朋友,你已经加载了元素,你不能只是注意到,那个页面内容已扩展“。

3 个答案:

答案 0 :(得分:0)

在第一次AJAX调用时向元素添加一个类。即'ajax-fetched'

在您的AJAX查询中,首先检查元素是否具有ajax-fetched类:

if $('your_element').hasClass('ajax-fetched')
  <<< your logic here >>>
else
  << your ajax request >>>
  on success: $('your_element').addClass('ajax-fetched')
end

这对我来说是最简单的方法。然而,如果有更多细节,我们可以轻松找到更好的解决方案。

答案 1 :(得分:0)

$(window).on('scroll resize', function(){
    $('#profile_search_bottom').css('bottom', '10px');
});

可能只是在滚动上定位以及窗口调整大小时的问题。

答案 2 :(得分:0)

您应该尝试在AJAX代码中添加一个简单的函数。获取并更新信息后,请尝试:

$("#profile_search_bottom").css({"bottom":"10px"});

它实际上取决于您使用的浏览器,但我希望这对您有用。

$.ajax({
  type: "POST",
  url: "some.php",
}).done(function( ) {
  //your stuff here
  $("#profile_search_bottom").css({"bottom":"10px"});
});