我是jquery的新手。我试图访问jquery之外的jquery块中定义的变量(来自常规函数),但是我无法访问它。有人可以告诉我怎么样?
<script language="javascript">
$(function()
{
.......
.......
.......
var api = pane.data('jsp');
var current_location = api.getContentPositionX();
}
function change_title(t_index) {
alert("print="+$.current_location);
window.location.href="page.php?p="+$.current_location);
}
我想获得$ .current_location的值。
感谢。
答案 0 :(得分:7)
没有“jQuery变量”,它们都是常规的Javascript变量。
您无法从函数中访问current_location
变量的原因是该变量在另一个函数内部声明。
只需在函数外部声明变量,使其成为全局变量,并且可以从两个函数中访问它:
var current_location;
$(function() {
.......
.......
.......
var api = pane.data('jsp');
current_location = api.getContentPositionX();
}
function change_title(t_index) {
alert("print=" + current_location);
window.location.href = "page.php?p=" + current_location;
}
答案 1 :(得分:0)
jQuery对象是全局的,只要你在页面上包含了jQuery。因此,只要属性存在,设置并且是公共的,调用$ .property或jQuery.property($ is alias)就应该有效。
您可能希望这样做以使current_location var成为jQuery对象的成员:
$(function()
{
.......
.......
.......
var api = pane.data('jsp');
this.current_location = api.getContentPositionX();
}
答案 2 :(得分:0)
您需要将current_location存储在全局可访问的对象上。 window
或您用作命名空间对象的自定义对象。
<script language="javascript">
var current_location = null;
var obj = {};
$(function() {
.......
.......
.......
var api = pane.data('jsp');
current_location = api.getContentPositionX();
obj.current_location = current_location;
})
function change_title(t_index) {
obj.current_location;
alert("print="+$.current_location);
window.location.href="page.php?p="+current_location);
}
答案 3 :(得分:0)
变量在第一个函数中定义,因此该变量的范围仅在第一个函数内,因此无法从该函数外部看到。
尝试在函数外定义变量,使其具有更大的范围。