2011-07-08 15 views
4

私はjqueryの初心者です。私はこのようなjquery(通常の関数から)外のjqueryブロック内で定義された変数にアクセスしようとしていますが、アクセスできません。誰かが私にどのように教えてもらえますか?通常のjavascript関数から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の値を取得したいです。

ありがとうございました。

答えて

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

jQueryオブジェクトは、もちろんjQueryをページに含めている限り、グローバルです。したがって、$ .propertyまたはjQuery.property($はエイリアス)を呼び出すと、プロパティが存在し、設定されていて公開されている限り動作するはずです。

$(function() 
{ 
    ....... 
    ....... 
    ....... 
    var api = pane.data('jsp'); 
    this.current_location = api.getContentPositionX(); 
} 
+0

私は早すぎる回答を投稿しました。あなたがコメントを投稿したのと同じくらい、私はすでに私の答えを編集していました。 – ddinchev

+0

が理にかなっています。私のコメントを削除しました –

0

あなたがグローバルにアクセスオブジェクト上CURRENT_LOCATIONを保存する必要があります。

あなたはCURRENT_LOCATIONのVAR jQueryオブジェクトのメンバーにするために何をしたいかもしれません。 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); 
} 
0

変数は最初の関数内で定義されているので、その変数のスコープは内です第1の機能であり、したがって、その機能の外側からは見ることができない。

関数の外に変数を定義して、スコープの範囲を広げてみてください。

関連する問題