Javascript 如何在没有全局变量的情况下访问此变量?

Javascript 如何在没有全局变量的情况下访问此变量?,javascript,jquery,Javascript,Jquery,我正在想办法让它工作 function foo(a) { $('#this-button').show(); } function buttonClicked() { //get access to var a } HTML 这是一个简化的版本,但我的想法是一样的 foo获取一个变量,然后使一个按钮可见。当点击按钮时,我想用var a做更多的事情 那么像是等待按钮被点击后继续这个功能吗 我好像想不出来 谢谢,这就是全局的原因,或者创建一个具有可以使用闭包的函数的对象 这就是全局的

我正在想办法让它工作

function foo(a) {
  $('#this-button').show();
}

function buttonClicked() {
  //get access to var a
}
HTML


这是一个简化的版本,但我的想法是一样的

foo获取一个变量,然后使一个按钮可见。当点击按钮时,我想用var a做更多的事情

那么像是等待按钮被点击后继续这个功能吗

我好像想不出来


谢谢,这就是全局的原因,或者创建一个具有可以使用闭包的函数的对象

这就是全局的原因,或者创建一个具有可以使用闭包的函数的对象

这就是全局的原因,或者创建一个具有可以使用闭包的函数的对象

这就是全局的原因,或者创建一个具有可以使用闭包的函数的对象

您始终可以访问全局范围:

window.a = a;
但这通常是不好的做法。你能重组代码使两个地方都有一个可用的代码吗


您始终可以访问全局范围:

window.a = a;
但这通常是不好的做法。你能重组代码使两个地方都有一个可用的代码吗


您始终可以访问全局范围:

window.a = a;
但这通常是不好的做法。你能重组代码使两个地方都有一个可用的代码吗


您始终可以访问全局范围:

window.a = a;
但这通常是不好的做法。你能重组代码使两个地方都有一个可用的代码吗


使用jQuery绑定单击处理程序。您可以使用绑定
a
作为参数:

function foo(a) {
    $('#this-button').show().click( $.proxy( buttonClicked, null, a ) );
}

function buttonClicked(a) {
    // Use a here
}
并从html属性中删除JavaScript:

<button id="this-button" />

使用jQuery绑定单击处理程序。您可以使用绑定
a
作为参数:

function foo(a) {
    $('#this-button').show().click( $.proxy( buttonClicked, null, a ) );
}

function buttonClicked(a) {
    // Use a here
}
并从html属性中删除JavaScript:

<button id="this-button" />

使用jQuery绑定单击处理程序。您可以使用绑定
a
作为参数:

function foo(a) {
    $('#this-button').show().click( $.proxy( buttonClicked, null, a ) );
}

function buttonClicked(a) {
    // Use a here
}
并从html属性中删除JavaScript:

<button id="this-button" />

使用jQuery绑定单击处理程序。您可以使用绑定
a
作为参数:

function foo(a) {
    $('#this-button').show().click( $.proxy( buttonClicked, null, a ) );
}

function buttonClicked(a) {
    // Use a here
}
并从html属性中删除JavaScript:

<button id="this-button" />
HTML

将buttonClicked方法放入foo中,以获取对变量a的访问

将buttonClicked方法放入foo中,以获取对变量a的访问

将buttonClicked方法放入foo中,以获取对变量a的访问


将buttonClicked方法放入foo中以访问变量a

有几种不同的方法可以剥除这只猫的皮,但有一种方法是使用闭包捕获变量a:

var myButton = document.getElementById('this-button');

function foo(a) {
    myButton.addEventListener("click", buttonClicked(a));
    ...
}

function buttonClicked(a) {
    return function() {
        console.log('buttonClicked', a);
    }
}

foo('Success!');
在这种情况下,当由
foo
函数运行时,函数
按钮单击
返回一个函数,该函数捕获
a
的值。该结果函数随后被传递到
事件处理程序
,并在触发时运行


请看这里的提琴:

有几种不同的方法可以剥这只猫的皮,但有一种方法是使用闭包捕获
a
变量:

var myButton = document.getElementById('this-button');

function foo(a) {
    myButton.addEventListener("click", buttonClicked(a));
    ...
}

function buttonClicked(a) {
    return function() {
        console.log('buttonClicked', a);
    }
}

foo('Success!');
在这种情况下,当由
foo
函数运行时,函数
按钮单击
返回一个函数,该函数捕获
a
的值。该结果函数随后被传递到
事件处理程序
,并在触发时运行


请看这里的提琴:

有几种不同的方法可以剥这只猫的皮,但有一种方法是使用闭包捕获
a
变量:

var myButton = document.getElementById('this-button');

function foo(a) {
    myButton.addEventListener("click", buttonClicked(a));
    ...
}

function buttonClicked(a) {
    return function() {
        console.log('buttonClicked', a);
    }
}

foo('Success!');
在这种情况下,当由
foo
函数运行时,函数
按钮单击
返回一个函数,该函数捕获
a
的值。该结果函数随后被传递到
事件处理程序
,并在触发时运行


请看这里的提琴:

有几种不同的方法可以剥这只猫的皮,但有一种方法是使用闭包捕获
a
变量:

var myButton = document.getElementById('this-button');

function foo(a) {
    myButton.addEventListener("click", buttonClicked(a));
    ...
}

function buttonClicked(a) {
    return function() {
        console.log('buttonClicked', a);
    }
}

foo('Success!');
在这种情况下,当由
foo
函数运行时,函数
按钮单击
返回一个函数,该函数捕获
a
的值。该结果函数随后被传递到
事件处理程序
,并在触发时运行


请看这里的提示:

您可以使用HTML5
localstorage

function foo(a) {
  $('#this-button').show();
  localStorage.setItem("variable_a", a); // variable in localstorage =variable_a
}

function buttonClicked() {
  localStorage.getItem('variable_a');
  //get access to var a
}

HTML5 localstorage允许您在客户端浏览器上存储数据,您可以通过
getItem()
访问数据。。。更多信息:[],[]

您可以使用HTML5
localstorage

function foo(a) {
  $('#this-button').show();
  localStorage.setItem("variable_a", a); // variable in localstorage =variable_a
}

function buttonClicked() {
  localStorage.getItem('variable_a');
  //get access to var a
}

HTML5 localstorage允许您在客户端浏览器上存储数据,您可以通过
getItem()
访问数据。。。更多信息:[],[]

您可以使用HTML5
localstorage

function foo(a) {
  $('#this-button').show();
  localStorage.setItem("variable_a", a); // variable in localstorage =variable_a
}

function buttonClicked() {
  localStorage.getItem('variable_a');
  //get access to var a
}

HTML5 localstorage允许您在客户端浏览器上存储数据,您可以通过
getItem()
访问数据。。。更多信息:[],[]

您可以使用HTML5
localstorage

function foo(a) {
  $('#this-button').show();
  localStorage.setItem("variable_a", a); // variable in localstorage =variable_a
}

function buttonClicked() {
  localStorage.getItem('variable_a');
  //get access to var a
}
HTML5 localstorage允许您在客户端浏览器上存储数据,您可以通过
getItem()
访问数据。。。更多信息请点击此处:[],[]

您可以使用。他们可以获得:

  • 元素中定义的属性(如果有)
  • 元素所有者表单中定义的属性(如有)
  • 文档中定义的属性
  • 全局对象中的属性(即全局变量)
因此,可以将变量添加为元素的属性:

函数foo(a){ $(“#此按钮”).show().prop('myProp',a); } 功能按钮点击(a){ 警报(a); } 傅(123),

单击我
您可以使用。他们可以获得:

  • 元素中定义的属性(如果有)
  • 元素所有者表单中定义的属性(如有)
  • 文档中定义的属性
  • 全局对象中的属性(即全局变量)
因此,可以将变量添加为元素的属性:

函数foo(a){ $(“#此按钮”).show().prop('myProp',a); } 功能按钮点击(a){ 警报(a); }