2

我有一个简单的 jQuery Mobile 弹出窗口,如下所示:

<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.target获取 dom 元素。

于 2012-11-17T23:47:44.740 回答