Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Popover click事件不起作用_Javascript_Jquery_Twitter Bootstrap - Fatal编程技术网

Javascript Popover click事件不起作用

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,

我有两个钮扣的流行音乐。但他们的点击事件不起作用。如何从按钮单击触发单击事件?我的html代码如下

$('.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>