使用 jQuery 为 JavaScript 函数设置变量
我在混合 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 被拒绝
错误。
我做错了什么?有什么建议吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试这样的事情:
Try something like this:
该错误意味着您违反了单源政策,即您正在尝试访问跨域- 域名 URL。
看你的网址,好像不是跨域的。当 Polymap 尝试使用绝对 URL 时,有可能会以某种方式产生翻译错误。您可能想要逐步了解 Polymap 如何执行
.url()
函数,从 最新来源。检查 JSON 是否确实位于不同来源的一种方法是查看 Firebug 或 Web Inspector 中的请求,并根据 来源确定规则;例如,http://www.example.com 与 http://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.