Ответ 1
Если вы используете jQuery версии 1.4.3 +:
$('selector').click(false);
Если нет:
$('selector').click(function(){return false;});
Я просто хочу отключить возможность щелчка пользователем элемента для какого-либо условия. Вот некоторые из кода, с которым я работаю:
$('#navigation a').bind('click',function(e){
var $this = $(this);
var prev = current;
current = $this.parent().index() + 1; // store the position in current
if (current == 1){
$("#navigation a:eq(1)").unbind("click"); // i want to disable the ability to click this element if current is 1
}
if (current >= 2){
$("#navigation a:eq(1)").bind("click"); // this is wrong, but I want to rebind the click if current is greater than 1.
}
}
Если вы используете jQuery версии 1.4.3 +:
$('selector').click(false);
Если нет:
$('selector').click(function(){return false;});
Предполагая, что вы используете события click, просто отвяжите его.
Пример
if (current = 1){
$('li:eq(2)').unbind("click");
}
EDIT:
Вы в настоящее время привязываете событие click к своему списку? Основываясь на вашем комментарии выше, мне интересно, действительно ли это то, что вы делаете? Как вы включаете клик? Это просто привязка (тег <a>
)? Немного более подробная информация поможет нам ответить на ваш вопрос.
UPDATE:
Было ли некоторое воспроизведение с помощью оператора: eq(). http://jsfiddle.net/ehudokai/VRGfS/5/
Как и следовало ожидать, это индексный оператор на основе 0. Поэтому, если вы хотите включить второй элемент в свой выбор, где ваш выбор
$("#navigation a")
вы просто добавили бы: eq (1) (второй индекс), а затем .unbind("click") Итак:
if(current == 1){
$("#navigation a:eq(1)").unbind("click");
}
Должен сделать трюк.
Надеюсь, это поможет!
Raw Javascript также может быстро выполнить одно и то же:
document.getElementById("myElement").onclick = function() { return false; }
Вы можете использовать метод unbind для удаления обработчика, который был прикреплен...
if (current = 1){
$('li:eq(2)').unbind('click');
}
Вы можете проверить, что можно отменить? Отменить привязку
Используйте метод off()
после срабатывания события click, чтобы отключить элемент для дальнейшего щелчка.
$('#clickElement').off('click');