使用 jQuery 为 JavaScript 函数设置变量

发布于 2024-12-04 13:03:53 字数 1304 浏览 0 评论 0 原文

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

文件名语法是:

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));
};

但它向我抛出一个 访问受限 URI 被拒绝 错误。

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

I have a little problem mixing a JavaScript library (Polymaps) and jQuery.
I'd like to call a different file everytime the user selects a value from the datepicker.

The filename syntax is:

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

This is the datepicker code:

$("#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()
    }
});

and the name of the file contains the values of the selection like below:

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

I also tried the code:

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

but it throws me an Access to restricted URI denied error.

What I'm doing wrong? Any suggestion?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怪我闹别瞎闹 2024-12-11 13:03:53

尝试这样的事情:

$("#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));
}

Try something like this:

$("#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));
}
初见 2024-12-11 13:03:53

该错误意味着您违反了单源政策,即您正在尝试访问跨域- 域名 URL。

看你的网址,好像不是跨域的。当 Polymap 尝试使用绝对 URL 时,有可能会以某种方式产生翻译错误。您可能想要逐步了解 Polymap 如何执行 .url() 函数,从 最新来源

检查 JSON 是否确实位于不同来源的一种方法是查看 Firebug 或 Web Inspector 中的请求,并根据 来源确定规则;例如,http://www.example.comhttp://example.com

The error implies that you are violating the Single Origin Policy, i.e. you're trying to access a cross-domain URL.

Looking at your URL, it does not seem like a cross-domain one. It is possible that when Polymap is trying to use absolute URL and somehow produces a bug in translation. You may want to step through how Polymap does the .url() function, starting at line 184 in the latest source.

One way to check whether the JSON is indeed on a different origin is to look at the requests in your Firebug or Web Inspector and see whether the requests made to the JSON files are indeed in the same domain according to the origin determination rules; for example, http://www.example.com is different origin than http://example.com.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文