2017-08-02 8 views
0

可変値を宣言するには、次のような関数を使用できますか?変数内の関数を使用して値を宣言する

$(document).ready(function() { 
 
    var x = $('#div').click(function(){ 
 
    x = 25; 
 
    }) 
 
    alert(x); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id='div'>The Div.</div>

私はこれは私が使用する方法であると言う、しかし、単に例として、私はdiv要素が25なるために押さ変数値のケースを定義したいので、私の場合はありません空白になるdivをクリックしなかった''

答えて

1

$()。click(関数)は、操作するjQueryオブジェクトを返します。したがって、xを値に設定する場合は、以下のようにしなければなりません。クリックイベントの外のアラートが常に空白になることを知っているだけです。

$(document).ready(function() { 
 
    var x = ''; 
 

 
    $('#div').click(function(){ 
 
    x = 25; 
 
    alert(x); 
 
    }) 
 
    alert(x); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id='div'>The Div.</div>

0

あなたはそれを変更するには、イベントハンドラを使用して、その後、最初に空の変数としてのxを設定する必要があります。すぐにアラートを出した場合は、ハンドラが設定された後、アラートの前にクリックする時間がありません。 xで何かするには、そのクリックを待たなければなりません。

$(document).ready(function() { 
 
    var x; 
 
    $('#div').click(function(){ 
 
    x = 25; 
 
    alert(x); 
 
    }) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id='div'>The Div.</div>

0

あなたは、変数のスコープを変更する必要がある、とあなたは、xにクリックハンドラの値を代入する必要はありません。上記の例で

xの値の範囲は$(document).ready(function() { ... });ブロックに制限されています。それ以外では、xは定義されません。 $('#div').click(function() { ... });は、スコープがドキュメント準備完了コールバックに限られているため、xを変更する機能を備えています。

あなたは、あなたが以下が必要になり、ボタンをクリックしたときのxの値の変化を警告する場合:#divがクリックされたときに、これはやっている

$(document).ready(function() { 
    var x = ''; 
    $('#div').click(function(){ 
    x = 25; 
    alert(x); 
    }); 
}); 

何である値が25に変更され、変更された値を警告しています。