jQuery - Как я вызываю ту же функцию с различными идентификационными тегами элемента?

Я - очень новое для jQuery и испытываю затруднения при вызове больше чем одного экземпляра функции.

у меня есть функция

 $('#open_dialog').click(function(){
     $("#dialog").dialog("open");
       return false;    
});

Для вызывания этой функции, у меня есть ссылка href с идентификационным именем тега open_dialog. Очевидно, это работает отлично, если это - единственная ссылка на странице, ссылающейся на функцию (Связь "один к одному"). Однако я хочу (Многие к отношениям).

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

По тому, как мои записи являются динамичными поэтому, $ ('#open_dialog, open_dialog2, open_dialog3... ') не практичен.

Спасибо за рассмотрение моего сообщения

6
задан John Boker 22 January 2010 в 14:20
поделиться

5 ответов

Вместо того, чтобы использовать уникальный идентификатор, вы можете использовать класс на ваших элементах, то просто используйте

$('.classname').click(function()
{
     // 'this' would reference the anchor that was clicked
     $("#dialog").dialog("open");
       return false;    
});

также, вы можете добавить другой атрибут на якорь, то есть

<a href="#" class="classname" record="14">Record 14</a>

, а затем внутри вашей функции вы можете У

var record = $(this).attr("record");

записи теперь содержат 14.

12
ответ дан 9 December 2019 в 20:43
поделиться

Вы бы выбрали для нас селектор классов вместо селектора идентификаторов.

Применить один и тот же класс к каждой из ваших ссылок... скажем "openDialog"

<a class='openDialog' href='your link here'>Your text here</a>

В jQuery, тогда вы бы изменили то, что у вас есть...

$('.openDialog').click(function(){
  $("#dialog").dialog("open");
  return false;    
});

Я путаю, на что вы ссылаетесь с идентификатором "#dialog". Вы на самом деле не объяснили, что это выше... или, по крайней мере, я не понял, если бы вы поняли.

Если бы было какое-нибудь значение из набора записей, который вы вытягиваете и который вам нужно передать в функцию onclick, вы могли бы установить id каждого якорного тега (предполагая, что эти значения уникальны) в качестве значения, которое вам нужно передать, а затем сослаться на них в коде так... (Я сохранил id ссылки в переменной с именем rec_no ниже...).

$('.openDialog').click(function(){
  var rec_no = $(this).attr("id");

  $("#dialog").dialog("open");
  return false;    
});
0
ответ дан 9 December 2019 в 20:43
поделиться

Забудьте все это класс . Честень, о которых все остальные говорят. Используйте это только, если вы абсолютно должны (зачем добавлять раздувание на разметку, если это ненужно?). Поскольку вы сказали, что ваши ссылки на столе, вы можете получить все ссылки в таблицу, подобную этой ...

$("table a").click(function() { ... });

или, если ваша таблица имеет идентификатор на нем ...

$("#tableId a").click(function() { ... });

Получите свой идентификатор записи внутри Легко тоже. Зависит от того, в каком столбце он находится. Это предупредит значение первого столбца в таблице (в пределах события клики) ...

var id = $(this).parent().siblings("td:eq(0)").text();
alert(id);
0
ответ дан 9 December 2019 в 20:43
поделиться

Вы можете использовать класс вместо : :

$('.open_dialog').click(function(){ 
    $('#dialog').dialog("open");
    return false;
});
0
ответ дан 9 December 2019 в 20:43
поделиться

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

<a class="open_dialog" id="record1"></a>

Затем измените функцию dialog , чтобы она принимала идентификатор записи в качестве аргумента, и передайте его следующим образом:

$('.open_dialog').click(function(){
    $("#dialog").dialog("open", $(this).id);
    return false;
});

Является ли диалог одной из ваших функций или чем-то встроенным на jQuery?

0
ответ дан 9 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: