【问题标题】:Getting the trigger element for jQuery mobile popup获取 jQuery 移动弹出窗口的触发元素
【发布时间】:2012-11-17 22:12:39
【问题描述】:

我有一个像这样的简单 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 属性的值填充其他内容。因此,我需要引用 &lt;a&gt; 元素,而不是 &lt;section&gt; 元素。

【问题讨论】:

    标签: javascript jquery jquery-mobile


    【解决方案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

    点击“披萨”后的控制台

    【讨论】:

    • 我从来没有想过要绑定到触发元素!谢谢,并接受。添加到您所说的内容中,此解决方案将起作用,但我将 ids 添加到链接中是不切实际的,因为这些链接是动态检索的,但是如果我这样做,它会起作用:$('a[data-food]').bind('click', function() { console.log(this); });。我想我应该使用on,因为bind 已被弃用。
    • 谢谢...现在这是一个很好的灵活解决方案。不知何故,我总是很困惑哪个被弃用,哪个不被弃用……;-) 答案现在更新了……
    【解决方案2】:
    $('#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元素。

    【讨论】:

    • 那只给了我&lt;section&gt; 元素和jQuery section 元素,而不是锚元素。
    猜你喜欢
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多