使用jQuery为JavaScript函数设置变量

时间:2011-09-15 16:49:17

标签: javascript jquery variables datepicker

我在混合JavaScript库(Polymaps)和jQuery时遇到了一些问题。 每当用户从datepicker中选择一个值时,我想调用一个不同的文件。

文件名语法为:

4sq_'the selected day value' _ 'the selected month value'.json

这是日期选择代码:

$("#datepicker").datepicker({
    dateFormat: 'yy/mm/dd',
    inline: true,
    minDate: new Date(2011, 8 - 1, 20),
    maxDate:new Date(2011, 12 - 1, 31),
    altField: '#datepicker_value',
      onSelect: function(){
        var selDay = $("#datepicker").datepicker('getDate').getDate();                 
        var selMonth = $("#datepicker").datepicker('getDate').getMonth() + 1;             
        var selYear = $("#datepicker").datepicker('getDate').getFullYear();

        plotMap()
    }
});

并且文件名包含选择的值,如下所示:

function plotMap(){
    map.add(po.geoJson()
       .url("4sq_"+selDay+"_"+selMonth+".json")
       .on("load", loadAreas));
};

我也试过了代码:

function plotMap(){
    map.add(po.geoJson()
       .url("4sq_"+
                   $("#datepicker").datepicker('getDate').getDate()
            +"_"+
                  $("#datepicker").datepicker('getDate').getMonth()
            +".json")
       .on("load", loadAreas));
};

但它引发了Access to restricted URI denied错误。

我做错了什么?有什么建议吗?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

$("#datepicker").datepicker({
    dateFormat: 'yy/mm/dd',
    inline: true,
    minDate: new Date(2011, 8 - 1, 20),
    maxDate:new Date(2011, 12 - 1, 31),
    altField: '#datepicker_value',
      onSelect: function(){
        var selDay = $("#datepicker").datepicker('getDate').getDate();                 
        var selMonth = $("#datepicker").datepicker('getDate').getMonth() + 1;

        plotMap(selDay, selMonth);
    }
});

function plotMap(day, month){
    map.add(po.geoJson()
       .url("4sq_"+day+"_"+month+".json")
       .on("load", loadAreas));
}

答案 1 :(得分:0)

该错误表示您违反了Single Origin Policy,即您尝试访问跨域网址。

查看您的网址,它似乎不是跨域网址。当Polymap尝试使用绝对URL并以某种方式产生翻译错误时,有可能。您可能需要逐步了解Polymap如何执行.url()功能,从the latest source的第184行开始。

检查JSON是否确实位于不同来源的一种方法是查看Firebug或Web Inspector中的请求,并根据{{3查看对JSON文件的请求是否确实位于同一域中}};例如,origin determination ruleshttp://www.example.com的来源不同。