Попытка найти конкретный экземпляр класса по номеру - PullRequest
0 голосов
/ 12 января 2011

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

В основном у меня есть несколько экземпляров класса "пункт меню", которые при нажатии вызывают функцию щелчка через jQuery и выводят видео.Вместо того, чтобы указывать каждый идентификатор и класс, я пытаюсь найти, какой экземпляр класса был нажат (1, 2, 3 и т. Д.).Кажется, просто не могу этого понять.

//click listener for menu-items
 $('.menu-item').click(function(event)
 {
      var o = $('.menu-item');
      var count = o.length();                    

     switch(count)
     {
      case 0 :
       filename == 'letters';
      break;
      case 1 :
       filename == 'the-gift';
      break;
     }

  var videoPlayer = '<video controls  width="618px">';
  videoPlayer += '<source src="_video/' + filename + '.mp4" />';
  videoPlayer += '</video>';

  //place video   
  $('#videoCont').html(videoPlayer);
 });

Я пытаюсь создать массив там, где каждый экземпляр 'menu-item' является одним элементом массива.(Кстати, сейчас я просто проверяю это с помощью файлового типа mp4, прежде чем добавить в форматы ogv и webm).

Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 12 января 2011

В дополнение к решению @ p.campbell. Я не уверен, как ваш код будет работать.

var o = $('.menu-item')

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

<li class='menu-item' filename='letters'>Letters</li>

и затем в вашем обработчике кликов вы можете сделать

var filename = $(this).attr('filename');
1 голос
/ 12 января 2011

Похоже, вы на самом деле не присваиваете значение вашей переменной filename.Вы только сравниваете значение переменной с жестко закодированными строками, но не присваиваете это (true / false) обратно чему-либо.

Возможно, вы имели в виду это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...