我想在第一个函数之外访问'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);
}
});
});
答案 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);
}
});
});