如何在其创建函数之外获取包含unicode的字符串变量的值?

时间:2018-07-06 11:55:33

标签: jquery function variables

我想在第一个函数之外访问'result'变量。知道它的值是Unicode,例如“ ﺏ”。 因为我是新来的,所以要求您的帮助。谢谢。

这是我的代码。 alert(r)显示一个空的对话盒:

    var result = '';

    $( document ).ready(function() {

        $( function() {
            $( "#draggable" ).draggable({ snap: ".baseline, .BF, .AF"});
            $( "#draggable2" ).draggable({ snap: ".baseline, .font"});
            $( "#draggable3" ).draggable({ snap: ".baseline, .font"});
            $( "#selectable" ).selectable();
        });

        $( "#selectable" ).selectable({
            stop: function() {
                var result='';
                $('.ui-selected').each(function() {
                    result += $(this).text();
                 });   

            $("#result").html(result);
            $("#harf").html(result);

           }
        });


       $( "#draggable, #draggable2, #draggable3" ).draggable({
          drag: function() {                   
            alert(result);
          }
       });

  });

2 个答案:

答案 0 :(得分:2)

根据Mark Baijens修改了代码,它可以正常工作。

var result = '';
  
$( document ).ready(function() {
      result = '1';
      var r = result;
      alert(r);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

由于您已经创建了全局变量并且可以在任何地方访问,因此可以解决以后使用它的担心。

尝试一下:

<script>
      var result = '';

        $( document ).ready(function() {
            $( "#selectable" ).selectable({
                stop: function() {
                    $('.ui-selected').each(function() {
                        result += $(this).text();

                     });   

                $("#result").html(result);
                $("#harf").html(result);

                var r = result ;
                alert(r);
               }
            });
        });

  </script>

答案 1 :(得分:2)

Java脚本在解析时运行。这就是为什么我们使用$(document).ready()作为事件处理程序在dom加载后执行代码的原因。这就是为什么您的全球尚未填补的原因。例如,$(window).load()将在$(document).ready()之后运行,因为第一个将等待所有内容加载,而第二个仅等待dom。因此,此代码有效。

var string = "";



$(window).load(function(){
  alert(string);
  console.log("im forth after the alert and filled with the ready value: " + string);
});

$(document).ready(function(){

  $("#button").click(function(){
      console.log("I'm on click: " + string);
  });

  string = "I'm filled";
  console.log("im third and filled with the ready value: " + string);
});

console.log("im first but empty: " + string);

string = "initial value";

console.log("im second but filled with an initial value: " + string);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="button">Button</Button>

编辑::添加了一些控制台打印以显示正在发生的事情

Edit2 :您的代码必须是这样的。

var result = '';
$( document ).ready(function() {
    $( function() {
        $( "#draggable" ).draggable({ snap: ".baseline, .BF, .AF"});
        $( "#draggable2" ).draggable({ snap: ".baseline, .font"});
        $( "#draggable3" ).draggable({ snap: ".baseline, .font"});
        $( "#selectable" ).selectable();
    });

    $( "#selectable" ).selectable({
        stop: function() {
            $('.ui-selected').each(function() {
                result += $(this).text();
            });   

            $("#result").html(result);
            $("#harf").html(result);
        }
    });


    $( "#draggable, #draggable2, #draggable3" ).draggable({
        drag: function() {                   
            alert(result);
        }
    });
});