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、ページが読み込まれるときに1回だけ呼び出されます。クリックcheckForCodeするまで実行されません。guess_boxシーケンスは次のとおりです。

  1. ドキュメントが読み込まれます。
  2. checkForCodeのクリックイベントにバインドされguess_boxますが、まだ実行されていません。
  3. hideCode実行されます。
于 2012-04-26T21:59:37.473 に答える