如何在JQuery中仅触发一次“就绪”?

时间:2019-04-25 14:45:49

标签: javascript jquery

我的以下方式无效。还有其他方法可以只触发一次就绪事件吗?谢谢

$("#id").one("ready", function (){
// do somthing
});

3 个答案:

答案 0 :(得分:2)

我真的建议您阅读jQuery文档,因为我确信您会找到其他解决问题的方法。准备好文档并非出于此目的。

http://learn.jquery.com/using-jquery-core/document-ready/

答案 1 :(得分:0)

如果您想在文档准备好后使用 #id做某事,则必须执行以下操作:

<input type="txt" id="give_lang"></br>
<button onclick='lngtype()'>Language</button>
<div id="lang_her">0</div>

<script type="text/javascript">

  function lngtype(text) {
  var text = document.getElementById("give_lang").value.replace(/\s/g); //read input value, and remove "space" by replace \s 
  //Dictionary for Unicode range of the languages
  var langdic = {
    "arabic" : /[\u0600-\u06FF]/,
    "persian" : /[\u0750-\u077F]/,
    "Hebrew" : /[\u0590-\u05FF]/,
    "Syriac" : /[\u0700-\u074F]/,
    "Bengali" : /[\u0980-\u09FF]/,
    "Ethiopic" : /[\u1200-\u137F]/,
    "Greek and Coptic" : /[\u0370-\u03FF]/,
    "Georgian" : /[\u10A0-\u10FF]/,
    "Thai" : /[\u0E00-\u0E7F]/,
    "english" : /^[a-zA-Z]+$/
      //add other languages her
  }  
  //const keys = Object.keys(langdic); //read  keys
  //const keys = Object.values(langdic); //read  values
  const keys = Object.entries(langdic); // read  keys and values from the dictionary
  Object.entries(langdic).forEach(([key, value]) => {  // loop to read all the dictionary items if not true
    if (value.test(text) == true){   //Check Unicode to see which one is true
      return document.getElementById("lang_her").innerHTML = key; //print language name if unicode true   
    }
  });
  }
</script>

您的代码中应仅包含$(function() { // do something $('#id').css('background', 'red); // do other things }); 函数,并且应将所有jQuery代码括起来。

如上所述,请阅读文档,您不会浪费时间。

答案 2 :(得分:0)

我将总结这些概念:

js文件必须只有一个$(document).ready()函数,因为此函数仅用于确保其中的代码仅在“文档准备就绪”(文档对象模型(DOM)准备好执行JavaScript代码-jQuery文档)。这意味着,一旦所有HTML加载完毕,您的js就将运行。

好吧,知道您可以在文档中编写聚焦函数以确保其正常工作后,就可以了。

看我做过的这个例子:https://jsfiddle.net/hf60asgo/1/

我们有HTML(DOM):

<input id="inputTest" placeholder="Test"/>
<span id="spanTest">Write something</span>

和JavaScript(jQuery):

$(document).ready(function(){
    $("#inputTest").focus(function() {
    $("#spanTest").fadeOut(1000);
  });
});

在文档准备就绪(输入和跨度已加载)之后,jQuery代码将运行,但前提是您将输入聚焦(单击)。

希望我能给你一些启发。