Как привязать событие к группе ссылок в HTML, запрошенном AHAH - PullRequest
2 голосов
/ 26 августа 2009

У меня есть HTML-код, запрошенный AHAH, например:

<table>
<tr>
    <td>...</td>
    <td><img src="..." onClick="get_next_ahah(sell####)" id="sell####"/></td>
</tr>
<tr>
    <td>...</td>
    <td><img src="..." onClick="get_next_ahah(sell####)" id="sell####"/></td>
</tr>
... and so on

где #### - числовые идентификаторы из БД. Как заменить функцию "get_next_ahah()" на эффективную функцию jQuery, написанную на событиях? И как я могу узнать, какой идентификатор я использую?

Ответы [ 2 ]

1 голос
/ 26 августа 2009

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

$("[id^=sell]")

Или, если все элементы гарантированно равны img с, вы можете использовать вместо этого более конкретный селектор:

$("img[id^=sell]")

Оба этих селектора будут возвращать массив элементов, которые имеют "sell" в идентификаторе, который можно назвать click() on.

Чтобы узнать текущий идентификатор, вы можете просто убрать «продать» из идентификатора и затем передать его в свою функцию get_next_ahah(), например:

$("img[id^=sell]").click(function() {
    get_next_ahah(this.id.replace('sell', '');
});
1 голос
/ 26 августа 2009

Было бы легче извлечь номер из идентификатора, если вы отделите номер от строки с префиксом подчеркиванием или чем-то подобным, например ::

<img src="..." id="sell_1234"/>

Тогда вам просто нужно сделать это:

$('table tr td img').click(function() {
    var num = $(this).attr('id').split('_')[1];
    get_next_ahah(num);
});

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

$('table tr td img').click(function() {
    var num = $(this).attr('id').match(/\((\d+)\)/)[1];
    get_next_ahah(num);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...