javascript - jQuery 函数没有按我的计划工作,DIV 只是在单击时消失

标签 javascript jquery jquery-events

我这里有一个脚本,除了一个小细节外,它的效果非常好。它基本上作为点击功能运行,在点击链接时淡入和淡出某些 DIV。

但是,问题是,当您单击页面上的 ANYWHERE 时,它会删除 DIV 并留下空白内容区域,直到您单击其中一个链接为止。显然这是一个问题。

由于 NDA 的原因,我不能使用我正在使用的确切代码,但这里是我使用的相同设置,只是 div 中的一些纯文本。

只需单击链接即可查看功能,然后单击页面上的其他任何位置(在 div 中、空白区域中,等等),然后看到 div 消失。我知道这就是 JavaScript 调用的内容,但我不知道如何禁用 div 中的点击,所以这不会发生。另外,如何做到这一点才不会禁用该 div 中的链接。

非常感谢任何帮助。这个网站是救命稻草。

这是我从这个站点得到的原始代码,经过编辑以显示我的基本布局。基本上是一堆内联链接,单击时,它们会将 DIVS 的一部分更改为 divs 的另一部分:

<html>

<head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    var gLastH = null;
    var gLastId = null;

    $('.toggle').click(function(e) {
        $('.toggleh:visible').fadeOut('slow');
        gLastId = $(this).attr('id');
        console.log('#' + gLastId + 'h');
        gLastH = $('#' + gLastId + 'h');
        $(gLastH).fadeIn('slow');
        e.stopPropagation();
    });

    $('*').click(function(e) {
        if ($(this).attr('id') != gLastId) {
            $(gLastH).fadeOut('slow');
        }

        e.stopPropagation();
    });
});
</script>

</head>

<body>
<div id="menubar">
    
    <a href="#" onclick="return false;" class="toggle" id="toggle1" style="display: inline;">
        text here</a>
    <a href="#" onclick="return false;" class="toggle" id="toggle2" style="display: inline;">
        text here</a>
    <a href="#" onclick="return false;" class="toggle" id="toggle3" style="display: inline;">
        text here</a>
    <a href="#" onclick="return false;" class="toggle" id="toggle4" style="display: inline;">
        text here</a>

    <div class="toggleh" id="toggle1h">
        some description in here I suppose
    </div>
   
    <div class="toggleh" id="toggle2h" style="display: none;">
        some description in here I suppose #2dsfds  sdfdsfa sdf 
    </div>
  
    <div class="toggleh" id="toggle3h" style="display: none;">
        some description in here I suppose #3dffdfasdfdsfdfasf
    </div>
   
    <div class="toggleh" id="toggle4h" style="display: none;">
        some description in here I suppose #4 dfdafa
    </div>
</div>

</body>

</html>

最佳答案

$('*').click(... 为所有元素 (*) 设置点击处理程序。您可以删除此功能。

关于javascript - jQuery 函数没有按我的计划工作,DIV 只是在单击时消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8853964/

相关文章:

javascript - 使用 atan2() 向鼠标方向旋转一个 div

javascript - !+[] 表达式在 JavaScript 中如何工作

javascript - 如何使用 svelte 在表格中实现箭头导航

javascript - 选中复选框后如何更改 DIV 的颜色?

javascript - 如何仅在精确的 div 内获得实时点击功能

javascript - 对象内对象的原型(prototype)

c# - 如何在 jquery easy ui CRUD DataGrid 中绑定(bind) Web 服务

jquery - 在页面加载时为 bootstrap 2.0 更改 body 标签

Javascript/JQuery 完全阻止 iFrame 内的导航

javascript - 将对象及其方法传递给 Javascript 中的 onchange 函数