国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) web前端 html教程 如何使用JQuery實(shí)現(xiàn)彈窗、AJAX分頁(yè)加載TAB分類數(shù)據(jù)并解決數(shù)據(jù)混雜問(wèn)題?

如何使用JQuery實(shí)現(xiàn)彈窗、AJAX分頁(yè)加載TAB分類數(shù)據(jù)并解決數(shù)據(jù)混雜問(wèn)題?

Apr 05, 2025 am 09:06 AM
ai 解決方法 overflow

JQuery彈窗及AJAX分頁(yè)加載TAB分類數(shù)據(jù)詳解

本文將詳細(xì)講解如何使用JQuery實(shí)現(xiàn)點(diǎn)擊按鈕彈窗,并通過(guò)AJAX加載對(duì)應(yīng)TAB分類ID的數(shù)據(jù),同時(shí)在每個(gè)TAB滾動(dòng)到底部時(shí)自動(dòng)加載下一頁(yè)數(shù)據(jù)的功能。 問(wèn)題中提供的代碼存在一個(gè)關(guān)鍵缺陷:每次點(diǎn)擊TAB時(shí),沒(méi)有清除之前的加載數(shù)據(jù),導(dǎo)致不同TAB的內(nèi)容混雜在一起。 以下將對(duì)代碼進(jìn)行改進(jìn),并說(shuō)明實(shí)現(xiàn)細(xì)節(jié)。

首先,我們需要理解問(wèn)題的核心在于如何正確地管理每個(gè)TAB對(duì)應(yīng)的AJAX請(qǐng)求和數(shù)據(jù)。原始代碼的問(wèn)題在于loadCategoryData函數(shù)中,滾動(dòng)事件監(jiān)聽(tīng)器始終作用于同一個(gè).tab_item元素,導(dǎo)致不同分類的數(shù)據(jù)互相干擾。 解決方法是為每個(gè)TAB的數(shù)據(jù)加載過(guò)程設(shè)置獨(dú)立的變量和狀態(tài)管理。

改進(jìn)后的代碼如下,這里用模擬數(shù)據(jù)代替了實(shí)際的AJAX請(qǐng)求,方便理解和測(cè)試:




  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .tab_p {
      display: flex;
    }

    .tab_item {
      height: 300px;
      overflow: auto;
    }

    .tab_item img {
      height: 50px;
      object-fit: cover;
    }
  </style>



  <div class="btn">點(diǎn)擊我彈窗并加載分類1數(shù)據(jù)</div>

  <div class="tab_p">
    <p data-id="1">分類1</p>
    <p data-id="2">分類2</p>
    <p data-id="3">分類3</p>
  </div>
  <div class="tab_content">
    <div class="tab_item">
      <!--分類內(nèi)容加載區(qū)-->
    </div>
  </div>

<script src="./jquery.min.js"></script>
<script>
  // 不需要總頁(yè)數(shù),因?yàn)榭傢?yè)數(shù)是后端返回的,前端不需要知道總頁(yè)數(shù),只需要知道當(dāng)前頁(yè)碼即可
  // 初始化分類ID currentPage total 
  let categoryId = 1, currentPage = 1, total = 0;
  // 是否加載中
  let isLoading = false;

  $(document).on('click', '.btn', function () {
    loadCategoryData(categoryId, currentPage);
  })

  $('.tab_p p').click(function () {
    currentPage = 1;
    categoryId = $(this).data('id');
    // 加載對(duì)應(yīng)分類的數(shù)據(jù)
    loadCategoryData(categoryId, currentPage);
  })

  function loadCategoryData(id, page) {
    $(".tab_item").html('加載中...');
    $(this).addClass('cur').siblings().removeClass('cur');
    loadPageData(id, page);
  }

  // 監(jiān)聽(tīng)滾動(dòng)事件
  $('.tab_item').scroll(function () {
    console.log('scroll...', $('.tab_item').scrollTop(), $('.tab_item').innerHeight())
    if (isLoading) {
      return;
    }
    //  判斷是否滾動(dòng)到底部距離150px 加載更多
    const scrollTop = $(this).scrollTop();
    const scrollHeight = $(this).prop('scrollHeight');
    const containerHeight = $(this).outerHeight();

    if (scrollHeight - scrollTop - containerHeight < 150) {
      // 滾動(dòng)到底部距離小于150px,加載更多數(shù)據(jù)
      currentPage  ;
      if (currentPage <= total) {
        loadPageData(categoryId, currentPage);
      }
    }

  });

  // 模擬個(gè)函數(shù),用于加載某一頁(yè)的數(shù)據(jù)
  function getData(categoryId, page) {
    console.log('getData...', categoryId, page)
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        // 隨機(jī)返回page條數(shù)據(jù)
        const list = [];
        // 每次返回20條數(shù)據(jù)
        for (var i = 0; i < 20; i  ) {
          list.push({
            title: '分類:'   categoryId   ',標(biāo)題:'   i,
            img_url: 'https://picsum.photos/200/300?random='   i
          });
        }
        resolve({
          list, // 當(dāng)前頁(yè)的數(shù)據(jù)
          page, // 當(dāng)前頁(yè)碼
          totalPages: 100 // 后端返回的總頁(yè)數(shù)
        });
      }, 1000);
    });
  }

  function loadPageData(categoryId, page) {
    // 判斷是否正在加載中
    if (isLoading) {
      return;
    }
    isLoading = true;
    getData(categoryId, page).then(({ list, page, totalPages }) => {
      // 更新總頁(yè)數(shù)
      total = totalPages;
      let html = "";
      for (var i = 0; i < list.length; i  ) {
        html  = '<div><img  src="'   list[i].img_url   '" alt="如何使用JQuery實(shí)現(xiàn)彈窗、AJAX分頁(yè)加載TAB分類數(shù)據(jù)并解決數(shù)據(jù)混雜問(wèn)題?" ><span>"'   list[i].title   '"';
      }
      $(".tab_item").append(html);
    }).finally(() => {
      isLoading = false;
    });
  }
</script>

這段代碼通過(guò)isLoading變量避免了重復(fù)請(qǐng)求,并使用Promise處理異步操作,保證數(shù)據(jù)加載的順序性和正確性。 同時(shí),通過(guò)在滾動(dòng)事件中判斷距離底部距離來(lái)觸發(fā)加載下一頁(yè),提高用戶體驗(yàn)。 需要注意的是,實(shí)際應(yīng)用中,/ajax.php?mod=tab接口需要根據(jù)實(shí)際情況進(jìn)行替換。 并且,應(yīng)該在后端返回的數(shù)據(jù)中包含總頁(yè)數(shù)信息,以便前端能夠準(zhǔn)確判斷是否需要加載下一頁(yè)數(shù)據(jù)。

以上是如何使用JQuery實(shí)現(xiàn)彈窗、AJAX分頁(yè)加載TAB分類數(shù)據(jù)并解決數(shù)據(jù)混雜問(wèn)題?的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
以太坊是什么幣?以太坊ETH獲得的方式有哪些? 以太坊是什么幣?以太坊ETH獲得的方式有哪些? Jul 31, 2025 pm 11:00 PM

以太坊是一個(gè)基于智能合約的去中心化應(yīng)用平臺(tái),其原生代幣ETH可通過(guò)多種方式獲取。1、通過(guò)Binance必安、歐意ok等中心化平臺(tái)注冊(cè)賬戶、完成KYC認(rèn)證并用穩(wěn)定幣購(gòu)買ETH;2、通過(guò)去中心化平臺(tái)連接數(shù)字儲(chǔ)存,使用穩(wěn)定幣或其他代幣直接兌換ETH;3、參與網(wǎng)絡(luò)質(zhì)押,可選擇獨(dú)立質(zhì)押(需32個(gè)ETH)、流動(dòng)性質(zhì)押服務(wù)或在中心化平臺(tái)一鍵質(zhì)押以獲取獎(jiǎng)勵(lì);4、通過(guò)為Web3項(xiàng)目提供服務(wù)、完成任務(wù)或獲得空投等方式賺取ETH。建議初學(xué)者從主流中心化平臺(tái)入手,逐步過(guò)渡到去中心化方式,并始終重視資產(chǎn)安全與自主研究,以

幣圈免費(fèi)行情網(wǎng)站怎么選?2025年最全測(cè)評(píng) 幣圈免費(fèi)行情網(wǎng)站怎么選?2025年最全測(cè)評(píng) Jul 29, 2025 pm 06:36 PM

2025年最適合查詢穩(wěn)定幣行情的免費(fèi)工具依次為:1. 幣安,數(shù)據(jù)權(quán)威、交易對(duì)豐富,集成TradingView圖表適合技術(shù)分析;2. 歐易,界面清晰、功能整合強(qiáng),支持Web3賬戶與DeFi一站式操作;3. CoinMarketCap,收錄幣種多,穩(wěn)定幣板塊可查看市值排名與脫錨情況;4. CoinGecko,數(shù)據(jù)維度全面,提供信任分?jǐn)?shù)與社區(qū)活躍度指標(biāo),立場(chǎng)中立;5. 火幣(HTX),行情穩(wěn)定、操作友好,適合主流資產(chǎn)查詢;6. Gate.io,新幣與小眾幣種收錄最快,是挖掘潛力項(xiàng)目的首選;7. Tra

Ethena財(cái)庫(kù)策略:穩(wěn)定幣第三帝國(guó)的崛起 Ethena財(cái)庫(kù)策略:穩(wěn)定幣第三帝國(guó)的崛起 Jul 30, 2025 pm 08:12 PM

目錄雙幣系統(tǒng)大逃殺真實(shí)采用仍未發(fā)生結(jié)語(yǔ)2023年8月,MakerDAO生態(tài)借貸協(xié)議Spark給出$DAI8%的年化收益,隨后孫割分批進(jìn)入,累計(jì)投入23萬(wàn)枚$stETH,最高占Spark存款量15%以上,逼得MakerDAO緊急提案,把利率下調(diào)到5%。MakerDAO的本意是“補(bǔ)貼”$DAI的使用率,差點(diǎn)變成孫宇晨的SoloYield。2025年7月,Ethe

幣安Treehouse(TREE幣)是什么?即將上線的Treehouse項(xiàng)目概述,代幣經(jīng)濟(jì)與未來(lái)發(fā)展分析 幣安Treehouse(TREE幣)是什么?即將上線的Treehouse項(xiàng)目概述,代幣經(jīng)濟(jì)與未來(lái)發(fā)展分析 Jul 30, 2025 pm 10:03 PM

目錄什么是Treehouse(TREE)?Treehouse(TREE)如何運(yùn)作?Treehouse產(chǎn)品tETHDOR——分散報(bào)價(jià)利率GoNuts積分系統(tǒng)Treehouse亮點(diǎn)TREE代幣和代幣經(jīng)濟(jì)學(xué)概述2025年第三季度路線圖開(kāi)發(fā)團(tuán)隊(duì)、投資者和合作伙伴Treehouse創(chuàng)始團(tuán)隊(duì)投資基金伙伴總結(jié)隨著DeFi的不斷擴(kuò)張,固定收益產(chǎn)品的需求日益增長(zhǎng),其作用類似于債券在傳統(tǒng)金融市場(chǎng)中的作用。然而,在區(qū)塊鏈上構(gòu)建

以太坊(ETH) NFT 七日銷量近1.6億美元,貸款機(jī)構(gòu)借助 World ID 推出無(wú)擔(dān)保加密貸款 以太坊(ETH) NFT 七日銷量近1.6億美元,貸款機(jī)構(gòu)借助 World ID 推出無(wú)擔(dān)保加密貸款 Jul 30, 2025 pm 10:06 PM

目錄加密市場(chǎng)全景掘金熱門代幣VINEVine( 114.79%,流通市值1.44億美元)ZORAZora( 16.46%,流通市值2.9億美元)NAVXNAVIProtocol( 10.36%,流通市值3,576.24萬(wàn)美元)Alpha解讀過(guò)去7天以太坊鏈上NFT銷售額近1.6億美元,CryptoPunks居第一去中心化證明者網(wǎng)絡(luò)Succinct推出Succinct基金會(huì),或?yàn)榇鷰臫GE

索拉納幣(Solana)與 Base幣 創(chuàng)始人開(kāi)啟論戰(zhàn):Zora 上的內(nèi)容有"基本價(jià)值" 索拉納幣(Solana)與 Base幣 創(chuàng)始人開(kāi)啟論戰(zhàn):Zora 上的內(nèi)容有"基本價(jià)值" Jul 30, 2025 pm 09:24 PM

一場(chǎng)關(guān)于“創(chuàng)作者代幣”價(jià)值的唇槍舌戰(zhàn),席卷了加密社交圈。Base與Solana兩大公鏈掌舵人罕見(jiàn)正面交鋒,圍繞ZORA和Pump.fun展開(kāi)激烈辯論,瞬間點(diǎn)燃CryptoTwitter的討論熱潮。這場(chǎng)火藥味十足的對(duì)峙,究竟從何而來(lái)?我們來(lái)一探究竟。爭(zhēng)議爆發(fā):SterlingCrispin對(duì)Zora發(fā)難風(fēng)波的導(dǎo)火索,是DelComplex研究員SterlingCrispin在社交平臺(tái)公開(kāi)炮轟Zora。Zora是Base鏈上的社交協(xié)議,主打?qū)⒂脩糁黜?yè)與內(nèi)容代幣化

Zircuit(ZRC幣)是什么?如何運(yùn)作?ZRC項(xiàng)目概述,代幣經(jīng)濟(jì)與前景分析 Zircuit(ZRC幣)是什么?如何運(yùn)作?ZRC項(xiàng)目概述,代幣經(jīng)濟(jì)與前景分析 Jul 30, 2025 pm 09:15 PM

目錄什么是ZircuitZircuit如何運(yùn)作Zircuit的主要特點(diǎn)混合架構(gòu)AI安全EVM兼容性安全原生橋Zircuit積分Zircuit質(zhì)押什么是Zircuit代幣(ZRC)Zircuit(ZRC)幣價(jià)格預(yù)測(cè)ZRC幣怎么買?結(jié)語(yǔ)近年來(lái),為以太坊(ETH)Layer1網(wǎng)絡(luò)提供服務(wù)的Layer2區(qū)塊鏈平臺(tái)的利基市場(chǎng)蓬勃發(fā)展,主要原因是網(wǎng)絡(luò)擁堵、手續(xù)費(fèi)高和可擴(kuò)展性差。其中許多平臺(tái)使用上卷技術(shù),鏈下處理的多個(gè)交易批

為什么幣安賬號(hào)注冊(cè)失???原因與解決方案 為什么幣安賬號(hào)注冊(cè)失敗?原因與解決方案 Jul 31, 2025 pm 07:09 PM

幣安賬號(hào)注冊(cè)失敗主要由地區(qū)IP封鎖、網(wǎng)絡(luò)異常、KYC認(rèn)證失敗、賬戶重復(fù)、設(shè)備兼容問(wèn)題及系統(tǒng)維護(hù)導(dǎo)致,1使用非受限地區(qū)節(jié)點(diǎn)并確保網(wǎng)絡(luò)穩(wěn)定;2提交清晰完整的證件信息并匹配國(guó)籍;3采用未綁定過(guò)的郵箱注冊(cè);4清理瀏覽器緩存或更換設(shè)備;5避開(kāi)維護(hù)時(shí)段并關(guān)注官方公告;6注冊(cè)后立即啟用2FA、地址白名單與反釣魚(yú)碼,可實(shí)現(xiàn)10分鐘內(nèi)完成注冊(cè)并提升安全性達(dá)90%以上,最終構(gòu)建合規(guī)與安全閉環(huán)。

See all articles