2011-11-09 3 views
0

に渡し:はをクリックして上の変数を設定し、私はこのようなdiv要素のIDの変数を取得しています別の関数

var value = $(this).attr('id').replace("-", "");

私のHTMLは次のようになります。だから、

<li id="item-1">1</li> 
<li id="item-2">2</li> 
<li id="item-3">3</li> 

私はそれに応じてitem1、item2、item3を取得します。

クリックしてIDに値を設定すると、ダイアログが開きます。ダイアログの中に入力とOKボタンがあります。大丈夫が押されたら、私はその変数を再び取得したい。

どのように変数を渡すことができますか、私はそのIDを話しているダイアログを知ることができます。あなたが他のコードブロックからアクセスできるように、クリックハンドラの範囲外

$("#bxs li").click(function() { 
      var value = $(this).attr('id').replace("-", ""); 

       $("#dialog").dialog("open"); 
       return false; 

     }); 


    // Okay button from the dialog. 


     $(".okaybtn").click(function() { 

// value is the variable from the previous function 
       localStorage.setItem(value , "test"); 
        $("#dialog").dialog("close");return false; 

      }); 

答えて

1

jQueryのデータ:

$("#bxs li").click(function() { 
    var value = $(this).attr('id').replace("-", ""); 

    $("#dialog").data("clickedfrom", value).dialog("open"); 
    return false; 

}); 


// Okay button from the dialog. 

$(".okaybtn").click(function() { 
    var $dialog = $("#dialog"); 
    // value is the variable from the previous function 
    localStorage.setItem($dialog.data("clickedfrom"), "test"); 
    $dialog.dialog("close"); 
    return false; 

}); 

スコープの変数は:

(function(){ 
var value; 
    $("#bxs li").click(function() { 
     value = $(this).attr('id').replace("-", ""); 

     $("#dialog").dialog("open"); 
     return false; 

    }); 


    // Okay button from the dialog. 

    $(".okaybtn").click(function() { 
     // value is the variable from the previous function 
     localStorage.setItem(value, "test"); 
     $("#dialog").dialog("close"); 
     return false; 

    }); 
})() 
+0

私は何が間違っているのか分かりませんが、どちらもうまくいきません。私は両方で定義されていません。私のフィドルを見てもらえますか? – jQuerybeast

+0

私はここにjsfiddleを持っています:http://jsfiddle.net/Dhsrf/それは動作します。あなたのものはどこにあるの? – Esailija

+0

最初の答えでは、ダイアログの変数が不足しています。ありがとう – jQuerybeast

0

宣言値:ここで

は一例です。

var value; 
$("#bxs li").click(function() { 
    value = $(this).attr('id').replace("-", ""); 

    $("#dialog").dialog("open"); 
    return false; 
}); 

$(".okaybtn").click(function() { 
    // value is the variable from the previous function 
    localStorage.setItem(value , "test"); 
    $("#dialog").dialog("close"); 
    return false;  
}); 
+0

それは私の質問はありません。私がokaybtnのvar値を警告すると、うまくいきません。 – jQuerybeast

+0

どのように動作しませんか? – jrummell

+0

アラート(値)未定義です。 – jQuerybeast

0

1.Youはグローバル変数としてそれを保存することができます - お勧めしません
2.Youは隠された入力に
3.You缶を選択した変数の値を格納することができますが、ダイアログ関数に引数としてid値を送りました。

+0

第3弾でもっと説明できますか? – jQuerybeast

0

私はあなたが何をしているのか正確にはわかりませんが、valueが2つの機能の外に宣言されていると、両方の機能にアクセスできるグローバルスコープに変数が与えられます。

var value; 
    $("#bxs li").click(function() { 
      value = $(this).attr('id').replace("-", ""); 

       $("#dialog").dialog("open"); 
       return false; 

     }); 


    // Okay button from the dialog. 


     $(".okaybtn").click(function() { 

// value is the variable from the previous function 
       localStorage.setItem(value , "test"); 
        $("#dialog").dialog("close");return false; 

      }); 
+0

それを試して、私はokaybtnに乗る、私は値を警告する場合、私は未定義になる。 – jQuerybeast

-1

jQuery UIダイアログでフォーム入力を処理する場合は、buttonsオプションを使用できます。

$("#dialog").dialog({ 
buttons: { 
    "Ok": function() { 
      value = $('#dialoginputfield').val(); 
      $(this).dialog("close"); 
     } 
    } 
}); 
+0

それは私の質問ではない...あなたがリンクをクリックすると、それはあなたのIDです。あなたが(あなたのような)機能を変更すると、あなたはどの変数について話しているのか分かりません。 – jQuerybeast

+0

完全で実用的なソリューションを提供することは私の意図ではありませんでした。私は、グローバルスコープ変数を持つダイアログの入力を処理する方法を指摘していました。私はあなたの質問を明確にするように頼んでいたはずです。 – Ketola

関連する問題