* [id ^ = Выбирает все, я хотел бы выбрать каждый номер - PullRequest
1 голос
/ 02 сентября 2011

С этим кодом, когда вы наводите курсор мыши на что-либо с id = "trigger *", он показывает все с id = "panel *" 1001 *

Это возможно? Это мой код:

$(document).ready(function(){
hovered = false;

$('*[id^=trigger]').bind('mouseenter mouseleave', function(event) {
switch(event.type) {
    case 'mouseenter':
       // when user enters the div

       $('*[id^=panel]').show('fast');

    break;
    case 'mouseleave':
      // leaves
         setTimeout(function(){
  if(!hovered) {
      $('*[id^=panel]').hide('fast');
      }}, 250);
    break;
}
});

$('*[id^=panel]').mouseover(function(){
hovered = true;
}).mouseout(function(){
hovered = false;
$('*[id^=trigger]').trigger("mouseout");
});

});

Ответы [ 3 ]

0 голосов
/ 02 сентября 2011

используйте регулярное выражение или javascript функция разделения , чтобы разделить идентификатор на две части и таким образом получить идентификатор

, как, например, в моем коде я использую

var draggable_id = $(this).attr('id').split('button')[0];
0 голосов
/ 02 сентября 2011

извлекает идентификатор из объекта триггера и использует этот идентификатор для поиска объекта панели.

$('*[id^=trigger]').bind('mouseenter mouseleave', function(event) {
  // extract id from trigger object
  var id = this.id.substring(7);
  switch(event.type) {
  case 'mouseenter':
    // when user enters the div
    $('*[id^=panel'+id+']').show();
  break;
  case 'mouseleave':
    $('*[id^=panel'+id+']').hide();
  break;
  }
});
0 голосов
/ 02 сентября 2011

Если я понимаю ваши требования, вы хотели бы показать ближайшую панель к сработавшему триггеру. Для этого используйте .closest().

Изменить это:

$('*[id^=panel]').show('fast');

К этому:

$(this).closest('*[id^=panel]').show('fast');

http://api.jquery.com/closest/

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