Диалоговое окно Jquery - PullRequest
       2

Диалоговое окно Jquery

1 голос
/ 27 августа 2011

У меня есть вопрос JQuery здесь, у меня есть несколько динамических HTML-ссылок на моей странице, и как только ссылка нажата, она должна открыть диалоговое окно с помощью JQuery, проблема в том, что я не уверен насчет количества ссылок, так как они динамически генерируются через цикл php while, поэтому я не могу предоставить разные идентификаторы для этих ссылок и нацелить их по отдельности, я хочу, чтобы по любой ссылке щелкали, она должна открывать диалоговое окно, независимо от того, имеют ли они одинаковый идентификатор или класс.

Дайте мне знать, если вы хотите, чтобы я был более конкретным.

Спасибо

Ответы [ 5 ]

0 голосов
/ 27 августа 2011

$(foo).dialog({ autoOpen: false })

создаст ваш диалог, а

$('a.opendialog').live('click',function() {
    $(foo).dialog('open'); 
    return false;
}

будет открывать ее каждый раз, когда вы щелкаете по любой ссылке, к которой добавлен класс "opendialog".

0 голосов
/ 27 августа 2011

Вы должны привязать событие click к тому, что будет соответствовать ссылкам, которые вы динамически генерируете.Например, если вы даете своим ссылкам класс «dialog-link», то вы можете сделать селектор для этого конкретного класса.

$('a.dialog-link').click(function(){
//Do something
});

Если ссылки динамически добавляются к вашему домену через javascript после pageLoad,тогда вы должны делегировать клик с живой.

$('a.dialog-link').live('click',function(){
//Do something
});
0 голосов
/ 27 августа 2011

С тем же классом

$('a.your_class').click(function(){
   //your code for dialog
});

Это не будет работать с теми же идентификаторами, потому что jquery будет возвращать только первый результат, потому что идентификатор должен быть уникальным на всей странице.

для каждой ссылки

$('a').click(function() {
   //your dialog here
});

для ссылок в определенном контейнере

$('#container a').click(function() {
  //your code for dialog
});

Просто убедитесь, что код должен быть помещен в

$ (document) .ready (function () {// ваш код здесь, он будет выполнять код при загрузке страницы});

0 голосов
/ 27 августа 2011

Посмотрите на живую функцию jQuery для привязки к элементам, которые могут еще не существовать.

http://api.jquery.com/live

Я бы использовал live для привязки к ссылкам через имя класса. Когда ссылка нажата, подключите диалог и откройте его. Как то так ...

$(".some_class").live("click", function(event){

    $(this).dialog(options); //create the dialog
    $(this).dialog("open"); //open the dialog
});
0 голосов
/ 27 августа 2011

Если вы динамически генерируете контент, вы всегда можете иметь <div> внутри диалога и заполнить его .html(contents);

...