如何从常规javascript函数访问jquery中的变量

时间:2011-07-08 06:58:23

标签: javascript

我是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的值。

感谢。

4 个答案:

答案 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)

变量在第一个函数中定义,因此该变量的范围仅在第一个函数内,因此无法从该函数外部看到。

尝试在函数外定义变量,使其具有更大的范围。