0

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

这是我对即将发生的事件顺序的理解:

  1. 文档被加载并准备好执行 jquery 功能。
  2. 单击guess_box 时,运行 checkForCode() 函数。
  3. hideCode() 函数运行。

它是否正确?

$(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');
       });
4

1 回答 1

0

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

  1. 文档被加载。
  2. checkForCode绑定到guess_box的点击事件,但它还没有运行。
  3. hideCode运行。
于 2012-04-26T21:59:37.473 回答