【问题标题】:javascript click image displayjavascript 点击图片显示
【发布时间】:2014-09-29 12:59:32
【问题描述】:

我想要做的是,当点击六个 div 之一时,一个单独的 div 中会出现 3 个特定的 div。最初的六个 div 中的每一个都有三个相似但不同的 div 与之相关。

http://jsfiddle.net/petiteco24601/hgo8eqdq/

$(document).ready(function () {
    $(".talkbubble").mouseout(function(){
        $(".sidebar").show();
});$
    $(".talkbubble").click(function(){
        $

如何做到这一点,以便当您单击“talkbubble” div 时,会出现一个不同的“sidebar” div 及其所有包含的元素,并且当您鼠标移出时,第一个 talkbubble div 会自动激活?

【问题讨论】:

  • 为什么这么多$(document).ready(function() {
  • 您的代码无法编译..您有语法错误
  • 你真的应该停下来看看你的代码的格式和正确性。你有语法错误,嵌套的 document.ready 函数,而且缩进很差。干净的代码是通往成功之路的第一步。使用 Fiddle 中的 TidyUp 按钮,然后查看 jslint。
  • 您应该“美化”(即格式化)您的代码,以便您更容易看到至少有一个 } 缺失 ;-)
  • 您是否正在尝试做这样的事情? jsfiddle.net/dztf9pLp

标签: javascript jquery onclick divider


【解决方案1】:

这里是如何做到这一点的演示:http://jsfiddle.net/n1xb48z8/2/

这个例子的主要部分是一些看起来像这样的javascript:

$(document).ready(function(){
    showSideBar(1);
    $('.expander').click(function(){
        var sidebarIndex = $(this).data('sidebar-index');
        showSideBar(sidebarIndex);
    });
    $('#Container').mouseleave(function(){
        showSideBar(1);
    });

});

function showSideBar(index){
    $('.sidebarContent').hide();
    $('.sidebarContent[data-index="' + index + '"]').show();
}

.data('some-name') 将为您提供特定元素上的属性 data-some-name="",这是一个 html 5 属性,如果您不想使用它,您可以改为给每个元素的它们自己的类名,例如:

<div class="sidebarContent subBarContent_1">
    <!-- content -->
</div>

并使用 '.subBarContent_1' 作为您的 jquery 选择器。然后,您还必须将某种数据附加到您的可点击 div 以确定您想要显示哪个,您可以使用隐藏字段来执行此操作:

<input type="hidden" class="subContentSelector" value="subBarContent_1" />

这个 javascript 看起来像这样:

$(document).ready(function(){
    showSideBar(1);
    $('.expander').click(function(){
        var sidebarSelector = $(this).find('.subContentSelector').val();
        showSideBar(sidebarSelector );
    });
    $('#Container').mouseleave(function(){
        showSideBar('subBarContent_1');
    });

});

function showSideBar(selector){
    $('.sidebarContent').hide();
    $('.sidebarContent.' + selector).show();
}

附言。溢出:隐藏的 css 是因为 chrome 弄乱了侧边栏内容的位置,否则......哦,chrome,你这个傻鹅

【讨论】:

  • 天哪,谢谢!您的代码实际上很有意义。我唯一的问题是,除了个人喜好之外,是否有其他理由不依赖 HTML5?我尝试在旧版本的 DreamWeaver 上使用数据索引方法,当我尝试在浏览器 (Chrome) 中从 DreamWeaver 查看它时,它不起作用。
  • 很高兴为您提供帮助! :) 不使用 HTML5 的主要原因是您的站点/应用程序必须在非常旧的系统上运行。一些公司仍然使用 windows XP 作为他们选择的操作系统,因为他们需要使用在 vista/7/8 上仍然不可用的应用程序。我不知道有多少用户仍在使用这些旧系统,但我两年前从事的一个项目必须能够在 Windows XP 和一些旧版本的 IE 上运行,因为“其他应用程序在新系统上不可用”。如果假设您的用户都拥有现代浏览器,那么您应该使用 HTML5 =)(移动浏览器“全部”支持 HTML5)
猜你喜欢
  • 2016-07-21
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
相关资源
最近更新 更多