javascript - 在 Carousel 之外点击返回首页

标签 javascript jquery html css twitter-bootstrap

您好,我有一个网页 Carousel.html,其中我的轮播显示有以下代码:

                <div id="carouSel" class="carousel slide" data-ride="carousel">

                    <div class="carousel-inner" role="listbox" id="carousel-inneR">
                        <div class="item active">
                            <img class="first-slide" src="././img/Carousel_img/Jimmy_Lannon_21.jpg" alt="First slide">
                                <div class="container">
                                </div>
                        </div>
                        <div class="item">
                            <img class="second-slide" src="././img/Carousel_img/Jimmy_Lannon_22.jpg" alt="Second slide">
                                <div class="container">
                                </div>
                        </div>
                        <div class="item">
                            <img class="third-slide" src="././img/Carousel_img/Jimmy_Lannon_23.jpg" alt="Third slide">
                                <div class="container">
                                </div>
                        </div>
                    </div>

                    <a class="left carousel-control" href="#carouSel" role="button" data-slide="prev" id="preV" >
                        <img class="left-chevron" src="././img/left_chevron.png" aria-hidden="true"/>
                    </a>
                    <a class="right carousel-control" href="#carouSel" role="button" data-slide="next" id="nexT" >
                        <img class="right-chevron" src="././img/right_chevron.png" aria-hidden="true"/>
                    </a>

                    <div class="artist-name">
                        <h2>JIMMY LANNON</h2>
                    </div>
                </div><!-- /.carousel -->

然后我有以下 JQuery 代码:

    $(document).click(function(e) {   
    if(e.target.id !==('#carouSel')) {
        $(".carousel").hide();   
    } 
});

这似乎行不通 - 我想要的是轮播仅在我点击它外部时隐藏,但如果我只是点击任何地方它就会隐藏。

最佳答案

这是我通常处理此类事情的方式。您必须确保听取主体的意见,而不是文件。

$('body').on('click', function(e) {
   $('#carouSel').hide();
});

$('#carouSel').on('click', function(e) {
   e.stopPropagation();
});

关键是使用 e.stopPropagation() 停止轮播中点击事件的冒泡;这样,它永远不会到达 body 元素的点击监听器。

关于javascript - 在 Carousel 之外点击返回首页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36183819/

相关文章:

javascript - VND 货币格式

javascript - 如何绑定(bind)bind和load方法?

html - OGG 真的是 HTML5 视频完全兼容所必需的吗?

javascript - 无法向没有事件卡条的客户收费

javascript - 通过添加一个没有冗余的整数来连接

javascript - 如何使用 knockout 一次又一次地调用函数

html - 如何将选定的图像设置为按钮

javascript - 在 JS 循环中验证多个 html 表行输入的最有效方法?

javascript - 怎么做才能点击显示内容部分?

javascript - 获取 elements 数组中的每个元素值