Похоже, у вас там есть вкладка.Если все #click1
- #clickX
имеют одного и того же родителя, вы можете сделать что-то вроде этого:
Убедитесь, что у каждого из #click1
- #clickX
есть свойство HTML (напримерHREF
), у которого есть идентификатор связанного элемента, который не должен быть скрыт.Затем передайте всем #click1
- #clickX
общий класс CSS.
Привязать к родителю набора #click
функцию, которая (1) скрывает все связанныесодержимое по идентификатору (используя HREF
или другое свойство);а затем (2) показывает содержимое, идентифицированное по нажатому элементу.
Вот некоторые JS (предполагая, что #click1
является A
, и что все #clickX
находятся внутри DIV
с ".tabset"):
$('a.clickable', $('.tabset')).live('click', function(event) {
// hide all linked content
var jThis = $(this);
var jSet = jThis.closest('.tabset');
jSet.find('a.clickable').each(function() {
$('#' + $(arguments[1]).attr('href')).hide();
});
// show this one piece of content
$('#' + jThis.attr('href')).show();
// prevent further handling
event.preventDefault();
return false;
});
Этот код предназначен для этой разметки:
<div class="tabset">
<a class="clickable" href="#show1">View #1</a>
<a class="clickable" href="#show2">View #2</a>
...
<a class="clickable" href="#showX">View #X</a>
</div>
<div id="#show1"> [stuff here] </div>
<div id="#show2"> [more stuff] </div>
<div id="#showX"> [stufffffff] </div>
Если вы не можете (или не хотите) иметь все #элементы clickX в одном контейнере, некоторые незначительные изменения должны быть сделаны.Вам нужно собрать все элементы в коллекцию, к которой можно получить доступ во время обработчика кликов, чтобы все «конкурирующее» содержимое можно было идентифицировать и скрыть.