2 sanhuv sanhuv 于 2016.04.01 08:44 提问

js 一个全局变量,在一个函数中进行赋值,调用另一个函数 ,这个全局变量的值却没有值为undined
 var typer;

function zhe(){
    typer = 'spline';

    search();
}



function search() {
    var jsonXData = [];
    var jsonyD = [];

    $.ajax({
        url : base + '/gateBrandCount/statisticsbySpecial.html',
        data : $('#form').serialize(),
        success : function(e) {
            var json = eval("(" + e + ")");
            for (var i = 0; i < json.length; i++) {
                var specialName = json[i].specialName;
                var count = json[i].count;
                jsonXData.push(specialName); // 赋值
                jsonyD.push(count);
            }
            console.log(typer);
            if(typer==undefined){
                console.log(typer+"11111")
                var op=highchart(jsonXData,jsonyD);
                op.chart.type='column';
            }else{
                console.log(typer+"22222")
                var op=highchart(jsonXData,jsonyD);
                op.chart.type="'"+typer+"'";
            }
            console.log(op.chart.type+"  ty");
            chart = new Highcharts.Chart(op);
        }
    })
}

highchart为一个显示柱状图的函数 返回options

就是那个typer 调用zhe() ,赋值后在search()中就是undefined

求教啊

3个回答

showbo
showbo   Ds   Rxr 2016.04.01 09:46
已采纳

如果你调用的是zhe,对应zhe里面的search肯定没有问题,不会是你贴出来的这些代码的问题。除非你直接调用的search,而不是zhe

showbo
showbo 回复sanhuv: 嘿嘿。。。那就采纳了吧
2 年多之前 回复
sanhuv
sanhuv 解决了,不过不知道咋解决的,就把JSP页面按钮改成超链接就可以了,也真是无语,昨天难为我一天了
2 年多之前 回复
CSDNXIAOD
CSDNXIAOD   2016.04.01 08:52

如何在一个函数内修改一个全局变量
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq_27556567
qq_27556567   2016.04.01 11:12

首先 你这是ajax 你这里默认是异步处理的 你改成同步处理 就可以了 每次ajax请求前 把 传递给Highcharts的值改为空 防止表格累加

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JS,全局变量,ajax中赋值,在其他闭包里没有拿到值
var nodeList; $(document).ready(function() { renderMenu(); alert(JSON.stringify(nodeList)); $.fn.zTree.init($("#treeDemo"), setting, nodeList); setCheck(); }); function rend
一个函数调用另一个函数,最好用参数传递。不然就得声明为全局变量。被调用的函数里边,变量前面写 global
一个函数调用另一个函数,最好用参数传递。不然就得声明为全局变量。被调用的函数里边,变量前面写 global
angular:关于一个函数的结果为另一个函数的参数的解决方案
场景一:第一个函数参数来源于URL,第一个函数的结果,为第二个函数的点击事件的参数。用到知识点:$http  $compile  ng-click() $location啥都不说,代码先行:html:&amp;lt;body ng-app=&quot;myapp&quot; &amp;gt;    &amp;lt;main  ng-controller=&quot;myctrl&quot;&amp;gt;        &amp;lt;div id=&quot;wipper&quot; &amp;..
JS中跨页面调用变量和函数(例如a.js 和 b.js中互相调用)
在项目开发过程中,也许你会遇这样的情况。在某一Js文件中需要完成某一功能,但这一功能的大部分代码在另外一个Js文件中已经完成了,自己只需要调用这个方法再加上几句代码就可以实现所需的功能。我们知道,在html中,利用引入的两个js是不可以相互调用的。那么该如何解决呢?当然,你可以将代码通通copy过来,也许你并不喜欢这样。    例如有这样一个html,里面有一个按钮,当按下时调用b.js文件
ajax实现给JavaScript中全局变量赋值
ajax实现给JavaScript中全局变量赋值
c++中定义一个全局变量,子函数修改变量后,主函数没有改变问题
在子函数声明时加& 如 (int *&head);
matlab全局变量(global):够被其他函数调用.在这两个函数中都要用global修饰这个变量.
1.静态变量(persistent):只有这个function才能认识它(main函数也不行).供该函数下一次调用.persistent保持。 在函数中声明的变量,当函数调用完之后就会释放。如果想保留这个变量的值(供该函数下一次调用),可以把这个变量声明为静态变量。静态变量不能在声明的时候赋值,而且只能在function里声明,且只有这个function才能认识它(main函数也不行)。x声
js变量:局部变量、全局变量、闭包
局部变量、全局变量      var a =1; function test(){ alert(a); var a = 2; alert(a); } test(); alert(a); 上面代码输出undefined   2   1         一、Javascript的变量的sc
javascript对全局变量值的修改(如记数器)
对全局变量,所有function函数都可以改变它的值,这可能带来一些问题。我们通过嵌套function函数来解决这个问题。这里先说明一点,事实上function能访问它的上一级作用域中的变量。 例如:<script> document.getElementById("demo").innerHTML = add(); function add() { var counter = 0;
[AJAX]js设置全局变量,在ajax中给予赋值赋值不上
因为Ajax是以异步方式来获取数据的,执行Ajax的时候你程序是继续往下面执行的,这样你那个变量没有被Ajax方法赋值,因此你的逻辑是无法使用同步方式编写的解决方法一: 将逻辑赋值写在ajax回调函数中,对应同一业务逻辑的后续代码需要写在Ajax的回调函数中,才能保证其串行运行。解决方法二:$.ajax({type : "post",url :地址,data : "参数" + 参数的值, asyn