2016-10-10 2 views
1

Когда щелчок мыши, мне нужно скрыть ссылку и показать другой div.Нажимайте мышью, спрячьте ссылку и покажите

<div class="fetch-from-link"> 
<a href="#" class="test" onClick="$(this).parent().hide();"> 
    Fetch from link 
</a> 

<div class="hello">Hello world</div> 
</div> 

Я просто использую простой hide способ. Но как я могу показать свой «привет» div после скрытия ссылки?

+0

Как именно вы ожидаете, что пользователь продемонстрирует его, если вы скроете элемент, который им нужно нажать? – nem035

+0

Вы скрываете div, содержащий ваш мир Hello. Переместите его туда или переместите его, когда вы скроете родительский div с jquery. –

ответ

1

Вы можете использовать следующий код:

$(function() { 
 
    $('.test').click(function() { 
 
    $('.test').hide(); 
 
    $('.hello').show(); 
 
    }); 
 
})
.hello { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="fetch-from-link"> 
 
    <a href="#" class="test">Fetch from link</a> 
 
    <div class="hello">Hello world</div> 
 
</div>

+0

Спасибо. Как я могу скрыть другой элемент при нажатии этой же ссылки? – Janath

+0

Вы дублируете эту строку $ ('. Test'). Hide(); и измените селектор (вместо .test, используйте селектор, соответствующий вашему элементу). – Sebastian

3

Поскольку jQuery используется, привязывает обработчик событий, используя его вместо уродливого встроенного обработчика кликов.

Вам необходимо указать hide() текущий элемент, затем Class Selector ('.hello') можно использовать для отображения другого div.

jQuery(function($) { 
 
    $('.test').click(function(e) { 
 
    e.preventDefault(); 
 
    $(this).hide(); 
 
    $('.hello').show(); 
 
    }) 
 
});
.hello { 
 
    display: none 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="fetch-from-link"> 
 
    <a href="#" class="test">Fetch from link</a> 
 
    <div class="hello">Hello world</div> 
 
</div>


В соответствии с действующей HTML, вы можете использовать .next()

Получить сразу после родственных каждого элемента в наборе соответствующих элементов. Если предусмотрен селектор, он получает следующий брат, только если он соответствует этому селектору.

jQuery(function($) { 
    $('.test').click(function(e) { 
     e.preventDefault(); 
     $(this).hide().next().show(); 
    }) 
}); 
+1

Я думаю, что '$ (this) .hide(). Next(). Show()' лучше и короче. – Mohammad

+0

Можно ли скрыть другой элемент, щелкнув по этой же ссылке? – Janath

+0

@CssSY, Да, вы можете – Satpal

1

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="fetch-from-link"> 
 
<a href="#" class="test" onClick="$(this).parent().hide();$('.hello').show();"> 
 
    Fetch from link 
 
</a> 
 

 

 
</div> 
 
<div class="hello" style="display: none; ">Hello world</div>

Вы должны переместить д iv снаружи, потому что вы скрываете div, содержащий ваш текст «Hello world».

1
<div class="fetch-from-link"> 
<a href="#" class="test" onClick="$(this).hide().siblings('.hello,.second-class,.third-class').show();"> 
    Fetch from link 
</a> 

<div class="hello">Hello world</div> 
</div> 

Вы скрываете целое div, содержащее оба элемента. Скрыть ссылку.

+0

Если я хочу использовать скрыть еще два, три элемента, нужно ли повторять классы смены кода? Или есть ли комбинированный способ сделать это? – Janath

+0

вы можете указать несколько классов одновременно для всех элементов, которые вы хотите скрыть. –

+0

Отлично! Можно ли скрыть другой элемент, щелкнув по этой же ссылке? – Janath

Смежные вопросы