Javascript Popover click事件不起作用
我有两个钮扣的流行音乐。但他们的点击事件不起作用。如何从按钮单击触发单击事件?我的html代码如下Javascript Popover click事件不起作用,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我有两个钮扣的流行音乐。但他们的点击事件不起作用。如何从按钮单击触发单击事件?我的html代码如下 $('.pop').each(function () { var $elem = $(this); $elem.popover({ placement: 'auto', trigger: 'hover', html: true, container: $elem, animation: true,
$('.pop').each(function () {
var $elem = $(this);
$elem.popover({
placement: 'auto',
trigger: 'hover',
html: true,
container: $elem,
animation: true,
content: function () {
var pop_dest = $(this).attr("data-pop");
//console.log(plant);
return $("#"+pop_dest).html();
}
});
});
$('#english').click(function() { // ---> THIS PART DOES NOT WORK
alert("english");
});
$('#turkce').click(function() { // ---> THIS PART DOES NOT WORK
console.log("turkce");
});
-
英语
-
蒂尔克çe
当您调用单击功能时,按钮尚未添加到页面中(因为它们位于动态添加的弹出窗口中),因此您必须使用能够处理将来添加内容的功能:
<li>
<a href="javascript: void(0);" id="languages" class="pop" data-html="true" data-toggle="popover" data-pop="popper-content" class="popper">
<?=$language["languages"]?>
</a>
<div class="hide" id="popper-content">
<ul class="lang-list">
<li class="en">
<button id="english">English</button>
</li>
<li class="tr">
<button id="turkce">Türkçe</button>
</li>
</ul>
</div>
</li>
如果在执行js时事件不存在,则应委托事件以确保事件get位于所需的DOM元素:
$('body').on('click', '#english', function () {
alert("english");
});
您可以通过jquery使用on
方法委派事件,其中选择器是将事件委派给子节点的父节点,firs参数是事件名称单击
,第二个是希望将事件委派给#english
的子级,第三个参数是处理程序。弹出窗口的内容将动态附加到页面。这意味着当您尝试在页面加载时附加事件处理程序时,DOM中不存在任何按钮。要解决此问题,请使用委派的事件处理程序:
$("body").on('click', '#english', function() {
alert("english");
});
$("body").on('click', '#turkce', function() {
alert("turkce");
});
问题是
的默认类型为submit
。您不希望出现这种默认行为,因为您提供了自己的单击处理程序。你需要一个钮扣
英语
要触发什么事件?$(“#英语”)。单击(函数(){alert(“英语”);});这部分不起作用。你能试着把$。每个功能,看看它是否工作?请注意:OP已暂停12个月,所以我怀疑他们会回来接受答案。无论如何,不断地添加答案/评论供他人学习,但不要期望你的答案被OP接受。
$(document).on('click', '#english', function() {
alert("english");
}).on('click', '#turkce', function() {
console.log("turkce");
});
<button id="english" type="button">English</button>