我试图通过弹出窗口访问触发弹出窗口的元素 内容(&#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
中的代码是否有更好的方式来做到这一点?官方的方式可能吗?
注意:请随时调整代码。
答案 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);