Вопрос по навешиванию событий jQuery

Рейтинг: 0Ответов: 2Опубликовано: 02.06.2011

На странице имеются ссылки вида :

<a href="/music.html"><div class="link">Музыка</div></a>

Есть аякс-функция на jQuery,которая будет в блок с id="ajaxDаtа" загружать url страницы,найденной в аттрибуте href ссылки.

Как привесить событие к ссылкам,так,чтобы при нажатии на ссылку выполнялся ajax-запрос,а не переход по ссылке?

Ответы

▲ 4Принят
    $('a').live('click',function(){
        var url = $(this).attr('href');
            yourAjaxFunction(url);
        return false;
    });

Соответственно, код самих ссылок исправлять не придется, более того новые появившиеся ссылки автоматически подпадут под действие данного кода, благодаря функции live()

Если вам нужно так обрабатывать не все ссылки, то замените селектор $('a') на нужный вам(например добавьте класс AJAX-ссылкам), либо делайте проверку уже внутри данной функции, и не вызывайте yourAjaxFunction, а также возвращайте true.

Тогда ссылка отработает как обычная, а не AJAX

▲ 2

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

<script type='text/javascript'>
  function doSomething(aObj)
  {
    // твой ajax тут, aObj -  DOM объект нажатой <a>
    return false;
  }
</script>

Твоя ссылка будет выглядеть так

<a href="/music.html"><div class="link">Музыка</div></a>