Задать вопрос
maxpoitn2point
@maxpoitn2point
Как всегда, в своем репертуаре

Как получить href ссылки Jquery?

Пытаюсь получить доступ к атрибуту href ссылки с классом remove
сами ссылки на удаления объектов получаю аяксом
вот мой код
function renderCand (data) {
	$("a#countCandidates > span.badge").text(data.length);
	$("#listCandidates").empty();
	data.forEach(function(item){
		$("#listCandidates").append('<tr>'+
                '<td>'+item.id+'</td>'+
                '<td>'+item.name+'</td>'+
                '<td>'+
                	'<a href="#" class="thumbnail">'+
						'<img src="http://placehold.it/140x100" alt="...">'+
					'</a>'+
                '</td>'+
                '<td>'+item.description+'</td>'+
                '<td>'+
					'<div class="btn-group" role="group" aria-label="...">'+
						'<a href="'+Routing.generate("candidates_delete",{id: item.id})+'" class="btn btn-xs btn-danger remove"><i class="fa fa-trash-o"></i></a>'+
						'<a href="#" class="btn btn-xs btn-warning"><i class="fa fa-edit"></i></a>'+
					'</div>'+
                '</td>'+
            '</tr>');
	});
}

$(".remove").bind('click',function(event){
		event.preventDefault();
		alert($(this).attr('href'));
		return false;
});

Результат: ссылка срабатывает как обычная и сообщение не выводится. что не так?
  • Вопрос задан
  • 24101 просмотр
Подписаться 3 Оценить 1 комментарий
Решения вопроса 3
HoHsi
@HoHsi
$(".remove").bind('click',function(e){ // bind лучше заменить on
  e.preventDefault(); // Отменяет стандартное действие ссылки
  alert($(this).attr('href'));
  return false; // Не совсем понял, зачем вы возвращаете что-то из колбека. Это можно убрать
});


P.S. А также минутачка пропаганды. Верите ли в спасителя нашего, скрипт кофейный?
$(".remove").on 'click', (e)->
    e.preventDefault()
    alert $(this).attr 'href'

Удобно ведь
Ответ написан
Menlod
@Menlod
Front-end developer
$(".remove").bind('click',function(event){
event.preventDefault();
  alert($(this).attr('href'));
  return false;
});


UPDATE по обновленному вопросу:

Ты функцию вызываешь где-то потом, а биндишь сразу, вот так попробуй:
function renderCand (data) {
  $("a#countCandidates > span.badge").text(data.length);
  $("#listCandidates").empty();
  data.forEach(function(item){
    $("#listCandidates").append('<tr>'+
                '<td>'+item.id+'</td>'+
                '<td>'+item.name+'</td>'+
                '<td>'+
                  '<a href="#" class="thumbnail">'+
            '<img src="http://placehold.it/140x100" alt="...">'+
          '</a>'+
                '</td>'+
                '<td>'+item.description+'</td>'+
                '<td>'+
          '<div class="btn-group" role="group" aria-label="...">'+
            '<a href="'+Routing.generate("candidates_delete",{id: item.id})+'" class="btn btn-xs btn-danger remove"><i class="fa fa-trash-o"></i></a>'+
            '<a href="#" class="btn btn-xs btn-warning"><i class="fa fa-edit"></i></a>'+
          '</div>'+
                '</td>'+
            '</tr>');
  });
  $(".remove").bind('click',function(event){
    event.preventDefault();
    alert($(this).attr('href'));
    return false;
});
}
Ответ написан
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
сами ссылки на удаления объектов получаю аяксом


Читайте, что я тут ответил: Добавленные элементы не реагируют на mouseenter?

Полюбому, это ваш случай.

↑ Code rewrite ↓
$(".remove").bind('click',function(event){
event.preventDefault();
alert($(this).attr('href'));
return false;
});


$(document).on('click', '.remove', function(e){
    e.preventDefault();
    alert($(this).attr('href'));
});

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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