У меня есть ссылки, отображаемые на странице. Я хотел бы включить/отключить их на основе других событий на странице. Есть ли способ сделать это с помощью jQuery?
Как динамически включить/отключить ссылки с помощью jQuery?
Ответ 1
$('selector_for_links_to_disable').bind('click', function(e){
e.preventDefault();
})
и для включения:
$('selector_for_links_to_enable').unbind('click')
Ответ 2
Вы можете сделать что-то вроде:
$('.links').click(function(e){
if( [some conditions] ){
e.preventDefault();
}
});
Убедитесь, что они больше не работают, иначе ваши пользователи будут запутаны, lol.
Ответ 3
это зависит от того, что вы подразумеваете под "отключением".
это заставит их ничего не делать:
$("A").click(function() { return false; });
Ответ 4
$(document).delegate('.links', 'click', function () {
if ([your condition is true]) {
return false;
}
})
делегирование лучше обработчиков, потому что вы можете вызвать их до загрузки dom.
Ответ 5
Вы можете сделать что-то вроде этого:
<script>
$(document).ready(function() {
$('input#disableall').live('click', function(){
$('a').attr( 'class', 'disabled' );
alert('All links are disabled.');
});
$('input#enableall').live('click', function(){
$('a').attr( 'class', 'enabled' );
alert('All links are enabled.');
});
$('a.disabled').live('click', function(event){
event.preventDefault();
});
});
</script>
<a href='http://www.google.com'>Google<a/>
<a href='http://www.yahoo.com'>Yahoo<a/>
<a href='http://www.hotmail.com'>Hotmail<a/>
<input type='button' id='disableall' value='Disable Links' />
<input type='button' id='enableall' value='Enable Links' />
Ответ 6
Когда я предоставляю функции кнопкам по jquery, мне нравится делать это:
indice = '';
$('myLink').live('click',function() {
if (indice !== 'value1'){
// your code
}
indice = 'value1';
return indice;
});
с этим вы получаете функцию только при первом нажатии кнопки. Теперь вам просто нужно установить разницу в значении value1, чтобы ваша ссылка снова работала.