использование переменной, извлеченной из селектора

#jquery

#jquery

Вопрос:

Я пытаюсь использовать элементы списка для переключения между соответствующими панелями, я также хочу сделать это с помощью переменных, просто чтобы я мог лучше ориентироваться в их использовании. Вот мой html и код ниже. Я пытаюсь извлечь i из идентификатора «значок», на который нажат, и использовать это i, чтобы открыть соответствующий идентификатор «панели», а затем прикрепить i. Любая помощь будет оценена! Спасибо!

HTML

 <div id="icon0" class="icon">
                    <a href=""><img src="Images/film_icon.png"/></a>
                    </div>
<div id="icon1" class="icon">
                    <a href=""><img src="Images/film_icon.png"/></a>
                    </div>
<div id="icon2" class="icon">
                    <a href=""><img src="Images/film_icon.png"/></a>
                    </div>
<div id="icon3" class="icon">
                    <a href=""><img src="Images/film_icon.png"/></a>
                    </div>
  

html-панели:

 <div id="panel0" class="panel">0000</div>
                    <div id="panel1" class="panel">1111</div>
                    <div id="panel2" class="panel">2222</div>
                    <div id="panel3" class="panel">3333</div>
  

Jquery

 for(var i=0; i<4; i  ){
        $('#icon' i).click( function() {  
        $('#panel' i).fadeOut(400);
        return false;
  

Ответ №1:

 <script type="text/javascript">
$(document).ready(function(){
   var iconPrefix = "icon";
   var panelPrefix = "panel";
   $("[id^='" iconPrefix  "']").each(
    function(index, Element){
      $("#" iconPrefix  index).click(function(event){
        $("#" panelPrefix  index).fadeToggle(400);
      });
    }
   );
});
</script>
  

Комментарии:

1. jQuery .live() и . функции делегирования () стоит рассмотреть, как только вы освоите этот способ регистрации событий.

Ответ №2:

Хорошо, сначала соберите все свои значки в объекте, затем при каждом нажатии на один получите индекс и вызовите исчезновение на соответствующей панели:

 var $icons  = $(".icons");
$icons.each(function() {
  $(this).click(function(evt) {
    var thisIndex = parseInt($(this).index());
    $("#panel" thisIndex).fadeToggle(4000);
  });
});