Semantic-Ui:如何将参数从弹出元素传递给弹出内容?

时间:2018-04-02 11:36:50

标签: javascript jquery semantic-ui

我试图通过弹出窗口访问触发弹出窗口的元素 内容(&#34;点击我&#34;我的例子中的按钮),所以我使用非全局变量(&#34; source_element&#34;在示例中)作为解决方法。< / p>

HTML代码:

<button id="show-popup-btn1" class="ui green button">
  Show popup 1
</button>

<button id="show-popup-btn2" class="ui red button">
  Show popup 2
</button>

<div class="ui popup">
  <button id="click-me-button" class="ui blue button">
    Click me
  </button>
</div>

Jquery代码

var source_element,
    popup = {
      popup: $('.ui.popup'),
      on: 'click',
      onShow: function(element) {
        source_element = element;
      }
    };

$('#show-popup-btn1').popup(popup);
$('#show-popup-btn2').popup(popup);

$('#click-me-button').on('click', function() {
  alert('The source element is: ' + source_element.innerText);
  $('button').popup('hide');
});

以下是Codepen

中的代码

是否有更好的方式来做到这一点?官方的方式可能吗?

  

注意:请随时调整代码。

1 个答案:

答案 0 :(得分:1)

我无法获得更好的方法来做到这一点,但对代码的更改几乎没有消除非全局变量

var popup = {
  popup: $('.ui.popup'),
  on: 'click',
  onShow: function(element) {
    $('#click-me-button').off("click")
    $('#click-me-button').on('click', function() {
        alert('The source element is: ' +element.innerText);
        $('button').popup('hide');
    });
  }
};
$('#show-popup-btn1').popup(popup);
$('#show-popup-btn2').popup(popup);