2

私は次のような単純なjQueryMobileポップアップを持っています:

<section data-role="popup" data-overlay-theme="a" id="eat">
    Are you sure you want to eat?
</section>

そして、同じポップアップをトリガーする複数のリンクがあります。

<a href='#eat' data-role='button' data-rel='popup' data-position-to='window' data-food="pizza">Pizza</a>
<a href='#eat' data-role='button' data-rel='popup' data-position-to='window' data-food="sandwich">Sandwich</a>

ポップアップを開くためにクリックされたリンクを特定する方法があるかどうか疑問に思っています。私が試してみました:

$('#eat').on('popupafteropen', function(event) {
    console.log(event);
});

しかし、私が受け取ったコンソール出力は、トリガー要素のオブジェクトを提供しません(何かが足りない場合を除く)。これを行う方法はありますか?

追加情報:リンクのdata-food属性の値を他の何かに入力しようとしています。したがって、<a>要素ではなく、<section>要素への参照が必要です。

4

2 に答える 2

1

リンクごとにIDを追加しました

     <a href='#eat' id="pizza"    data-role='button' data-rel='popup' data-position-to='window' data-food="pizza">Pizza</a>
     <a href='#eat' id="sandwich" data-role='button' data-rel='popup' data-position-to='window' data-food="sandwich">Sandwich</a>

このスクリプトを使用しました

<script>
  $('#pizza').on( "click", function() {
    console.log(this);
  });

  $('#sandwich').on( "click", function() {
    console.log(this);
  });
</script>

それを機能させるには、 jsfiddleも参照してください

「ピザ」をクリックした後のコンソール ここに画像の説明を入力してください

于 2012-11-18T21:28:01.403 に答える
0
$('#eat').on('popupafteropen', function(event) {
    console.log(this); // should give you the anchor element
    console.log($(this)); // should give you the jquery anchor element 
});

event.targetdom要素を取得すると言うこともできます。

于 2012-11-17T23:47:44.740 に答える