2011-09-13 1 views
1

これは私の問題である:変数とjqueryの:どのようにキャプチャ値とそれらを使用する(パート2)

私は名前の多くのリストを持っているUL-LIリストから

を変数をキャプチャしています:ローマ、ミラノ、ヴェネツィア... mouseoverイベントで、これらのid値を取得します(この質問を探すにはvariables and jquery: how capture value (part 1)が必要な場合は、これらのid値をRoma、pulsante2 for Milano、pulsante3 for Venezia、...)もっと知るために)。

これで、$ regionMapというグローバル変数が作成されました。この変数は、ul-liリストにmouseoverイベントがあるたびに変更されます。 これで、他のjqueryスクリプトで異なるID値(pulsante1、pulsante2、pulsante3 ...)の代わりに$ regionMapの値を使用できるようになりました。

たとえば、私は、このループがあります。今

$('#pulsante1').mousedown(function() // when click over pulsante1 (id value for "Roma") 
     {   
var $variab=document.getElementById('pulsante1').innerHTML; // take the name (here Roma) 
var $alfa="#"+ $variab; // Roma is now #Roma 
alert("You entered: " + $alfa); //control 
dialog($alfa); // calling the function dialog rolling on #Roma value. 
}); 

// here is similar at the first but instead #pulsante1(Roma) you have #pulsante2 (Milano) 
$('#pulsante2').mousedown(function() 
     {  
     var $variab=document.getElementById('pulsante2').innerHTML; 
     var $alfa="#"+ $variab; 
     alert("You entered: " + $alfa); //control 
     dialog($alfa); // calling the function dialog 
     }); 
        });//close click 

を、私は$ regionMap代わりpulsante1、pulsante2使用が好き...しかし、私のために不可能であると思います! 私はそうしようとしました$($regionMap).mousedown(function()と他の方法で($($regionMap)., ($regionMap)., $('$regionMap'). ....)、

私はいつもの結果があります!どのようにできるのか?どのように変数を渡すのか知っていますか?

私の長い記事のため

申し訳ありませんが...私はおそらく(*でのためのループ*を持つなど)と同様の結果を得るためのより良い方法があると思いますが、私はどのように知っていないと基本的な英語には申し訳ありませんが、私は開発者ではなく、私は大きな傾きになっています!

おかげ

答えて

0

あなたの他の質問を見た後、これを試してみてください。

$('#country_list').mousedown(function(e) { 

    // e.target is the element you clicked 

    var $variab = e.target.innerHTML; 

    var $alfa= '#' + $variab; // Roma is now #Roma 

    alert("You entered: " + $alfa); //control 

    dialog($alfa); 

}); 

あなたの#country_list要素は、任意のマウスイベントを待ち受けます。イベントが発生すると、イベントを生成した要素をe.targetで見つけることができます。

あなたのような何かを試みることができる
+0

ok。私はあなたのソリューションを他の人と混在させて使用しました。変数とjqueryと呼ばれる私の質問の最後の部分でそれを見ることができます:価値をどのように捕捉して使用するのか(パート3)私はいくつかの質問をしています。 – ulisse

0

...

$($regionMap).each(function (i,el) 
{ 
    $(el).mousedown(function() // when click over pulsante1 (id value for "Roma") 
     {   
      var $variab=el.innerHTML; // take the name 
      var $alfa="#"+ $variab; // Roma is now #Roma 
      alert("You entered: " + $alfa); //control 
      dialog($alfa); // calling the function dialog rolling on #Roma value. 
     }); 

}); 

この意志regionMapにおけるIDのそれぞれをループし、それぞれにコールバック関数を適用します。

jQueryの各関数は、コレクションの各アイテムにコールバック関数を適用します。この場合のコレクションはidsのリストです。 [ '#のpulsante1'、 '#のpulsante2']

http://api.jquery.com/jQuery.each/

+0

各要素のイベントリスナーを作成していますが、何千もの要素がある場合はどうなりますか?イベントはバブルアップするので、それらのイベントリスナーは1つだけ必要です。 –

0

すべてのイベントをバインドするために、このコードを使用します。

$($regionMap).children('li').mousedown(function() 
{   
    alert("You entered: " + this.id); 
    dialog(this.id); 
}); 

これは、マップ内の各リーにイベントをバインドし、それらう別々にイベントを処理します。

+0

ありがとうございますが、私は1つのスクリプトの外部変数を使用するのに問題があります。私はグローバル変数($ regionMap)を宣言しましたが、結果は常に不定です。私は質問を扱う別の投稿、価値をどのように捉えて使用するのか(パート3) – ulisse

関連する問題