在内容之前加载jquery函数

load jquery function before content

本文关键字:加载 jquery 函数      更新时间:2023-09-26

我制作了这个函数:

var jq111 = jQuery.noConflict();
if (jq111("#tab-upsell_tab").find("div").length > 0){ 
} else {
    jq111(".upsell_tab_tab").hide();
    jq111("#tab-upsell_tab").hide();
}

如果为空,则隐藏元素。

但在页面加载时,#tab-upsell_tab会出现1秒(如果需要隐藏),我不喜欢它。

有没有办法在这个元素之前加载这个函数?或者类似的东西。

编辑:我接受css解决方案,但如何?

您应该在CSS中将.upsell_tab_tab#tab-upsell_tab设置为display: none。将您的JavaScript也更改为:

var jq111 = jQuery.noConflict();
if (jq111("#tab-upsell_tab").find("div").length > 0){ 
  jq111(".upsell_tab_tab").show();
  jq111("#tab-upsell_tab").show();
}

这样,您的元素在默认情况下是隐藏的,您必须根据您的逻辑强制显示它们。

尝试使用$.holdReady().ready()

$(window).load(function() {
  var jq111 = jQuery.noConflict();
  jq111.holdReady(true);
  if (jq111("#tab-upsell_tab").find("div").length > 0) {
  } else {
    jq111(".upsell_tab_tab").hide();
    jq111("#tab-upsell_tab").hide();
  }
  jq111.holdReady(false);
  jq111(document).ready(function() {
    // do stuff
  })
})

div .length"#tab-upsell_tab"内不大于0http://plnkr.co/edit/Xp2RbPe65BaFeobtTVOL?p=preview

"#tab-upsell_tab"内的div .length大于0http://plnkr.co/edit/ekSUelSinlM8baKQe74Y?p=preview

DOM呈现HTML、CSS,然后是JS。因此,如果你想隐藏你的HTML元素,那么用CSS隐藏它们,或者你可以使用一个模板系统,比如胡子,或者在你的JS代码中创建。我更喜欢在JS代码中创建它们。它使您的代码在DOM上更干净、更轻松。