2009-08-17 4 views
2

Итак, у меня есть список пользователей на странице. каждое имя пользователя можно щелкнуть, и в диалоговом окне отобразится информация о пользователе. Сейчас я использую статическую длину для списка. Я бы хотел, чтобы jquery посмотрел, насколько велик список пользователей, и примените код к списку.jquery ui несколько динамических диалогов

Заканчивать код здесь:

$(function() { 
    var options = { 
      autoOpen: false, 
      width: 'auto', 
      modal: true 
    }; 
    $([1, 2, 3, 4]).each(function() { 
      var num = this; 
      var dlg = $('#dialog-player-' + num).dialog(options); 
      $('#player-link-' + num).click(function() { 
        dlg.dialog("open"); 
        return false; 
      }); 
    }); 

});

Я просмотрел эту страницу документации: each Я попытался выбрать все div в контейнере «div # parent». Например:

$(function() { 
    var options = { 
      autoOpen: false, 
      width: 'auto', 
      modal: true 
    }; 
    $("div#parent div").each(function() { 
      var num = this; 
      var dlg = $('#dialog-player-' + num).dialog(options); 
      $('#player-link-' + num).click(function() { 
        dlg.dialog("open"); 
        return false; 
      }); 
    }); 

});

Но это не сработало. Кто-нибудь знает, как это сделать?

ответ

2

Я заметил ошибку в коде и установил ее для вас :

$(function() { 
    var options = { 
      autoOpen: false, 
      width: 'auto', 
      modal: true 
    }; 
    var num = 1; 
    $("div#parent div").each(function() { 
      var dlg = $('#dialog-player-' + num).dialog(options); 
      $('#player-link-' + num).click(function() { 
        dlg.dialog("open"); 
        return false; 
      }); 
      num = num + 1; 
    }); 
}); 
+0

Это было ... спасибо !! – 2009-08-18 12:23:28

0

посмотреть «дети» в документах - я думаю, вам, возможно, понадобится цикл через дочерние элементы, используя каждый, а не то, что вы сделали. например

$ ("# DIV родитель"). Детей ('DIV'). Каждая (функция() {...} и т.д.)

+0

Ну, я попробовал, но это не сработало. Я также пробовал использовать .siblings(), но не работал ни – 2009-08-18 11:03:11

1
$(function() { 
    var options = { 
      autoOpen: false, 
      width: 'auto', 
      modal: true 
    }; 
    $(['George', 'Ralph', 'Carmine', 'Suzy']).each(function(index, val) { 
      var num = index; 
      var dlg = $('#dialog-player-' + num).dialog(options); 
      $('#player-link-' + num).click(function() { 
        dlg.dialog("open"); 
        return false; 
      }); 
    }); 
}); 

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

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