0

いくつかのラジオボタンのリストがあり、クリックするとチェックされた入力の値を取得し、それを変数に保存します。後で、div などの別の要素がクリックされたときに変数にアクセスしたいと考えています。変数が 2 番目のクリック イベント内で認識されないことを除いて、すべて正常に動作します。多分変数スコープの間違いでしょうか?

   <ul><li><a href="#">Line</a><input class="checkTool" type="radio" name="drawTool"     value="line"></input></li></ul>
            <ul><li><a href="#">Rect</a><input class="checkTool" type="radio" name="drawTool" value="rectangle"></input></li></ul>
            <ul><li><a href="#">Circ</a><input class="checkTool" type="radio" name="drawTool" value="circle"></input></li></ul>




</p>

 $("input:radio[name=drawTool]").click(function() {
                    var currTool = $(this).val();
 });


$('.space').click(function(){


$(this).html(currTool)

})

<a href="http://jsfiddle.net/menislici/cbfhu/3/" rel="nofollow">JSFiddle

4

2 に答える 2

2

さらに良いことに、チェックされたラジオボタンを探すことで、実際に必要なときに現在選択されているツールを取得できます。

$('.space').click(function(){
    var currTool = $("input:radio[name=drawTool]:checked").val();
    $(this).html(currTool);
});
于 2012-07-14T12:27:23.947 に答える
1

別のメソッドでアクセスする場合は、メソッドの外部で宣言された変数に値を保持します。そのため、メソッドよりもスコープが広くなります。メソッドの外部からもアクセスできます。

$(function(){

   var currTool="";
   $("input:radio[name=drawTool]").click(function() {
      currTool= $(this).val();
   });

   $('.space').click(function(){
      $(this).html(currTool)
   })

});
于 2012-07-14T12:23:07.560 に答える