jQuery全局变量 [英] jQuery Global Variable

查看:109
本文介绍了jQuery全局变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  $(function(){
var damg

有人可以解释为什么这不起作用: = $(。hidden).val();

$(button)。click(function(){
alert(damg);
});
});

jsFiddle: http://jsfiddle.net/raFnT/



使用全局变量很好吗?我还读过这是一个慢于每次输入的选项?



详细解释:

我有这个:

  $(button)。click(function(){
alert(damg );
});

并且damg是输入的值: var damg = $( .hidden)。val();



当您在输入中键入内容然后按下按钮时,

我可以使用

  $(button)。click(function(){
var damg = $(。hidden)。val();
alert(damg);
});

但是有一点我会有100个函数,我会这样结束:



$ $ $ $ $ $ c $ $(button1)。click(function(){
var damg = $(。hidden)。val );
alert(damg);
});
$ b $(button2)。click(function(){
var damg = $(。hidden)。val();
alert(damg);
});
$ b $(button3)。click(function(){
var damg = $(。hidden)。val();
alert(damg);
});
$ b $(button4)。click(function(){
var damg = $(。hidden)。val();
alert(damg);
});
$ b $(button5)。click(function(){
var damg = $(。hidden)。val();
alert(damg);
});

我想设置一个全局变量,以便在每个函数上我都不需要调用函数



类似于这样:

  var damg = $( .hidden)VAL(); 
$ b $(button1)。click(function(){
alert(damg);
});
$ b $(button2)。click(function(){
alert(damg);
});

$(button3)。click(function(){
alert(damg);
});
$ b $(button)。click(function(){
alert(damg);
});
$ b $(button4)。click(function(){
alert(damg);
});
$ b $(button5)。click(function(){
alert(damg);
});


解决方案

写在一个函数的外部。



你的代码不工作,因为.hidden没有值。



http://jsfiddle.net/raFnT/2/



除非您真的需要全局变量,否则使用全局变量是不好的做法。我不知道每次输入它的意思。



另外,您并未重新加载点击处理程序中的值。

  $(function(){
$(button)。click(function(){
var damg = $( .hidden)。val();
alert(damg);
});
});

http://jsfiddle.net/raFnT/6/

为了获得一个好的答案,OP想要的是 blur function。

  $(function(){
var damg;

$(。hidden)。blur(function(){
damg = $(。hidden)。val();
});
$ b $(button)。click(function(){
alert(damg);
});
});

http://jsfiddle.net/raFnT/7/


Can someone explain me why this doesn't work:

$(function() { 
   var damg = $(".hidden").val();

    $("button").click(function() {
        alert(damg);
    });
});

jsFiddle: http://jsfiddle.net/raFnT/

Is it good to use global variables? I've also read that it is a slower option than typing it every time?

To explain in detail:

I have this:

$("button").click(function() {
            alert(damg);
        });

and the damg is a value of the input: var damg = $(".hidden").val();

When you type something in the input and THEN press the button, alert the value of that input.

I could use

$("button").click(function() {
var damg = $(".hidden").val();
                alert(damg);
            });

but in one point that I will have 100 functions I will end up like this:

$("button1").click(function() {
    var damg = $(".hidden").val();
                    alert(damg);
                });

$("button2").click(function() {
    var damg = $(".hidden").val();
                    alert(damg);
                });

$("button3").click(function() {
    var damg = $(".hidden").val();
                    alert(damg);
                });

$("button4").click(function() {
    var damg = $(".hidden").val();
                    alert(damg);
                });

$("button5").click(function() {
    var damg = $(".hidden").val();
                    alert(damg);
                });

I want to set a global variable so that on every function I don't need to call the function again.

Something like this:

var damg = $(".hidden").val();

$("button1").click(function() {
        alert(damg);
    });

$("button2").click(function() {
        alert(damg);
    });

$("button3").click(function() {
        alert(damg);
    });

$("button").click(function() {
        alert(damg);
    });

$("button4").click(function() {
        alert(damg);
    });

$("button5").click(function() {
        alert(damg);
    });

解决方案

You have it backwards, a global variable has to be written OUTSIDE of a function.

Your code doesn't work because .hidden doesn't have a value.

http://jsfiddle.net/raFnT/2/

It is bad practice to use global variables unless you really need them to be global. I don't know what you mean by 'typing it every time.'

Also, you are not reloading the value in the click handler.

$(function() {            
    $("button").click(function() {
        var damg = $(".hidden").val();
        alert(damg);
    });            
});

http://jsfiddle.net/raFnT/6/

In the interest of having a good answer, what the OP wants is the blur function.

$(function() {     
    var damg;

    $(".hidden").blur(function () {
        damg = $(".hidden").val();
    });

    $("button").click(function() {
        alert(damg);
    });            
});

http://jsfiddle.net/raFnT/7/

这篇关于jQuery全局变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆