Jquery函数调用序列

时间:2012-04-26 21:12:42

标签: jquery

我是Jquery的新手,在一本书中看到了这段代码。 我试图理解hideCode()是如何被执行的。

这是我对即将发生的食物序列的理解:

  1. 文档已加载并准备好执行jquery函数。
  2. 点击guess_box后​​,运行checkForCode()函数。
  3. hideCode()函数运行。
  4. 这是对的吗?

    $(document).ready(function() {
       $(".guess_box").click(checkForCode);
       function getRandom(num) {
           var my_num = Math.floor(Math.random() * num);
           return my_num;
       }
       var hideCode = function() {
           var numRand = getRandom(4);
           $(".guess_box").each(function(index, value) { 
               if(numRand == index){
                   $(this).append("<span id='has_discount'></span>");
                   return false;
               }
           });
       }
       hideCode();
       function checkForCode() {
           var discount;
           if($.contains(this, document.getElementById("has_discount"))) {
              var my_num = getRandom(5);
              discount = "<p>Your Discount is " + my_num + "%</p>";
           } else {
               discount = "<p>Sorry, no discount this time!</p>" ;
           }
           $(this).append(discount);
           $(".guess_box").each(function() {
               $(this).unbind('click');
           });
    

1 个答案:

答案 0 :(得分:0)

除非我们没有看到更多代码,否则在页面加载时只会调用hideCode一次。 checkForCode在点击guess_box之前不会运行。顺序是:

  1. 文档已加载。
  2. checkForCode绑定到guess_box的点击事件,但它尚未运行。
  3. hideCode运行。