gpt4 book ai didi

jQuery:在 Ajax 加载中只执行一次函数

转载 作者:行者123 更新时间:2023-12-01 07:35:10 24 4
gpt4 key购买 nike

我正在尝试做一个简单的.fadeIn()第一个 div 一次,但问题是这是 everyTime(xxx sec) 内的 Ajax 加载,因此每次再次加载时都会执行相同的操作。

如何防止第一个 div.fadeIn()一遍又一遍,但仍然在新的div上执行此功能?

我对 jQuery 不太熟悉,所以用勺子喂我:)

更新:

我一直在尝试你的所有建议!我真的很感谢你的帮助,但我仍然陷入困境。我还没有.one上类。我试过$("#chatline:first").one(function(){ $(this).fadein()}); ,但正如我所说,我从 jQuery 中得到了一个重大失败:p。我对 jQuery 还很陌生。

我也尝试过添加和删除类,但无法让 jQuery 记住该类已被删除,因此它会淡入淡出等。

这是脚本,稍微简短。

...

j(document).ready(function(){

//reloads every 3sec

j(".chatref").everyTime(3000,function(i){
j.ajax({url: "chatx.php",
cache: false,
success: function(html){
j(".chatref").html(html);

// These for testing

if($('div#chatline').hasClass('first')){
j("#chatline").fadeIn('slow');
}

剪断... jQuery 结束

PHP(chatx.php 的一部分):

div class='chatref' <- This one is only for jQuery's everytime function, e.g where to show the stuff. Don't know other ways to do this.

//First div I added classname first and hidden with PHP.

div class='chatline hidden first'

div class='chatline'

div class='chatline'
div class='chatline'

.... etc.

剪断...结束 PHP。

我希望我已经解释得足够好了!感谢大家的帮助!!

最佳答案

您可以使用 .ajaxStop() 将 div 绑定(bind)到第一个 ajax 请求上的淡入淡出如果是第一个请求,则解除自身绑定(bind),这样就不会多次发生,如下所示:

$("#myDiv").ajaxStop(function() {
$(this).unbind("ajaxStop").fadeIn();
});

否则,只需在实际调用 ajax 加载 div 时绑定(bind)它,以便它在返回时执行。或者,在您的成功函数中,只需使用 :hidden selector 仅在当前隐藏时显示它。 ,像这样:

$.ajax({
//options..
success: function(data) {
//stuff..
$("#myDiv:hidden").fadeIn();
}
});

关于jQuery:在 Ajax 加载中只执行一次函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2806812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com