2011-01-11 3 views
0

Я пытаюсь удалить ссылки на определенный класс, поэтому Javascript выполняется вместо него (onclick и т. Д.) (И если из corse, javascript он включен, вот почему я хочу сохранить HREF в исходном коде .. в любом случае, я пытаюсь с:Отменить href с помощью jquery не работает

<script type="text/javascript"> 

     $(document).ready(function() { 
        $('.remove').attr('href', '#'); 
     }); 

</script> 

но это не делает: S

+0

делает анкер имеет начальное значение? – amosrivera

+0

'$ ('. Remove'). Attr ('href', '#');' заменит значение 'href' на #, в результате получится' href = "#" 'в ссылке. Ожидаете ли вы удалить href? – Reigel

ответ

2

Попробуйте это вместо того, чтобы ...

$('.remove').removeAttr('href'); 

Установка href на пустой фрагмент # - это плохая практика, хаки и уродливость. Это часто приводит браузер к верхней части страницы.

В качестве альтернативы, с клик обработчиков вы могли бы сделать ...

$('a').click(function(event) { 
    event.preventDefault(); 
}); 

Вы также можете return false.

+0

Это был мой первый выход, но я попробую еще раз, я переместил функцию, поэтому .. –

+0

, так что если я опубликую это как есть, будет ли функция под onclick = "" вызываться? вот что я пытаюсь. Удалите href, чтобы вместо этого был сделан onclick. –

+0

@Toni Michel Caubet Да, это должно быть. Но, не видя всего вашего кода, мне нужно сделать некоторые предположения. – alex

1

Я отчасти понимаю, что вы пытаетесь сделать, и правильный путь, о нем не вынимая # HREF, я бы не советовал по возвращении ложным, потому что вы не сможете передать объект JQuery:

$(document).ready(function() { 
    $("#anchorId").click(function(event){ 
    event.preventDefault(); 
    //do stuff 
    }); 
}); 
+0

Я согласен с использованием event.preventDefault(), но вы можете объяснить, что вы подразумеваете под возвратом false, не передавая объект jQuery? – typeof

0

Просто добавьте рекомендуемый event.preventDefault() в качестве последней строки для обработчика событий. Вам не нужно изменять значение href.

Основание на код:

$(document).ready(function() { 
       $('.remove').click(function(event) { 
         // your Javascript stuff 

         // Most import jquery line 
         event.preventDefault(); 
       } 
    }); 
+0

, так что если я опубликую это как есть, будет ли exectuted функция под onclick = ""? вот что я пытаюсь. Удалите href, поэтому вместо onclick будет –

+0

'event.preventDefault();' не обязательно должна быть последней строкой, на самом деле, я обычно делаю ее первой строкой, поэтому ясно, что поведение по умолчанию не вызывается , – alex

-1

Чтобы сделать его более легким, просто с помощью HTML:

<a href="http://stackoverflow.com" onclick="return false;">Stack Over Flow</a> 

Если вы хотите сделать JS с функцией

<script type="text/javascript"> 
function RemoveHREF(type){ 
    $(type).attr('href', '#'); 
} 
</script> 

Ваш HTML должен быть

<a href="http://stackoverflow.com" class="URL5">Stack Over Flow</a> 

Теперь для вызова для функции

<script type="text/javascript"> 
$(document).ready(function() { 
    RemoveHREF('.URL5'); 
}); 
</script> 
Смежные вопросы