【问题标题】:Click on Link to show data on div and Link Disappear is not working单击链接以在 div 上显示数据并且链接消失不起作用
【发布时间】:2014-12-04 22:54:46
【问题描述】:

我需要什么

  • 我需要在用户点击链接数据时显示。
  • 点击后链接消失。

我试过代码

<a href="javascript:void(0);" class="viewdetail more" 
    style="color:#8989D3!important;">view details
    <div class="speakers dis-non">
    </div>
</a>

jquery 代码

$('.viewdetail').click(function() {
    $(this).find('.speakers').show();
    $(this).find('.viewdetail').hide();
});

问题

  • 当我点击查看详细链接时,数据显示在 div 上。

  • 链接不会消失。

  • 如果我在 div 之前放置锚点,那么扬声器类 div 上不会显示数据。

  • 欢迎提出任何建议。

jsfiddle:http://jsfiddle.net/fw3sgc21/

【问题讨论】:

  • 如何在其中隐藏父母并显示孩子?这没有任何意义:/

标签: javascript jquery css html


【解决方案1】:

由于div在anchor里面,隐藏anchor也会隐藏div。您需要将 div 放在锚点旁边才能使其工作。使用next()方法选择div。

HTML

<a href="javascript:void(0);" id="viewdetail" style="color:green">view detail</a>
<div class="speakers dis-non" style="display: none">
    test data to be shown
</div>

JS

$('#viewdetail').on('click', function(){
    // show div with speakers class next to the anchor
    $(this).next('div.speakers').show(); 

    // hide the anchor
    $(this).hide();
});

JSFiddle:http://jsfiddle.net/fw3sgc21/2/

编辑

如果您想将speakers div 包装在另一个 div 中,如下所示

<a href="javascript:void(0);" id="viewdetail" style="color:green">view detail</a>
<div class="12u">
    <div class="speakers dis-non">
        test data to be shown
    </div>
</div>

使用以下 CSS

.dis-non
{
    display: none;
}

这是应该显示 speakers div 并隐藏单击的锚点的 JS

$('#viewdetail').on('click', function(){
    $(this).next().children('div.speakers').show();
    $(this).hide();
});

JSFiddle:http://jsfiddle.net/fw3sgc21/6/

编辑 2

如果你想将锚点放在两个 div 中,如下所示

<div class="a">
    <div class="b">
        <a href="javascript:void(0);" id="viewdetail" style="color:green">view detail</a>
    </div>
</div>
<div class="12u">
    <div class="speakers dis-non">
        test data to be shown
    </div>
</div>

使用.parent() 方法两次选择&lt;div class="a"&gt;,然后使用.next().children('div.speakers').show() 显示speakers div

$('#viewdetail').on('click', function(){
    $(this).parent().parent().next().children('div.speakers').show();
    $(this).hide();
});

JSFiddle:http://jsfiddle.net/fw3sgc21/8/

【讨论】:

  • 我正在寻找的完美答案
  • 在 js fiddle 中添加 extar div 类
    接下来是函数不能显示隐藏 div
【解决方案2】:

尝试以下方法:

$('.viewdetail').click(function()
{
     $('.speakers').show();
     $(this).hide();
});

$(this) 指的是.viewdetail 所以你不需要find 再次

将div拉到超链接外

HTML:

<a href="javascript:void(0);" class="viewdetail more" style="color:#8989D3!important;">view details</a>

<div class="speakers dis-non"></div>

【讨论】:

  • 链接消失,但你可以检查然后div中的数据也应该消失,我希望点击链接后数据应该可见并且希望链接应该消失
  • 你为什么把它放在你的超链接a标签中?在超链接之后拉出 div
  • dis-non 与 display none im using skell js 相同
  • 我已经删除了css规则
【解决方案3】:

试试这个

html

<a href="javascript:void(0);" id="viewdetail" style="color:green">view detail

</a>
    <div class="speakers dis-non">
        test
    </div>

js

$('#viewdetail').click(function() {
                $('.speakers').show();
                $(this).hide();


            });

http://jsfiddle.net/fw3sgc21/1/

【讨论】:

  • dis-non 是一样的 display none
  • 现在好吗?你还没有发布你的css代码那我怎么知道
【解决方案4】:

首先,您的代码中的this 指的是被点击的链接本身。 所以这条线$(this).find('.viewdetail').hide(); 不起作用,因为链接内部没有.viewdetail。应该是

$('.viewdetail').on('click',function(e) {
        var self = $(this);
        self.find('.speakers').show();
        self.hide();
});

但是,如果您隐藏您的链接,.speakers 也将被隐藏,因为它在您的链接内。如果你想让它可见,你应该把它放在链接之外

例如:

<a href="#" class="viewdetail more" style="color:#8989D3!important;">view details</a>
<div class="speakers dis-non"></div>

还有 JS:

$('.viewdetail').on('click',function(e) {
        var self = $(this);
        e.preventDefault(); // prevent link from working the way it should
        self.next('.speakers').show();
        self.hide();
});

【讨论】:

    猜你喜欢
    • 2013-03-27
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2021-10-26
    • 2015-03-15
    • 1970-01-01
    • 2016-05-19
    相关资源
    最近更新 更多