私はJqueryの初心者で、このコードを本で見ました。 hideCode()がどのように実行されているかを理解しようとしています。Jquery関数呼び出しシーケンス
- ドキュメントがロードされ、jqueryの機能を実行するためにその準備ができます:
これが起こるだろうthatsのevetsの一連の私の理解です。
- guess_boxをクリックすると、checkForCode()関数が実行されます。
- 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');
});
IMHO、警告/console.debugをbeteeen行に追加し、実行中の順番を確認してください。それは実行の順序を理解するのに役立ちます。 – Shyju
あなたのコードは1スペースの字下げで読みにくいです。私は4つのスペースを使用することをお勧めします。 – ThiefMaster
hideCodeは、クリックする前に呼び出されます。 – jantimon