Когда вы привязываете событие click к ссылке, вам нужно включить функцию обработчика кликов.
$(this).bind('click');
не делает ничего, потому что нет обработчика функции. Вам нужно будет снова передать функцию обработчика кликов, если вы хотите переподтвердить ее. Это можно сделать, разбив обработчик кликов на собственную локальную функцию, а затем используя эту функцию каждый раз, когда вы привязываете событие click. Вы можете сделать это так:
function bindA1(force) {
var a1 = $('.a1');
if (force || a1.hasClass("disabled")) {
a1.click(function() {
$(this)
.addClass("disabled")
.unbind("click")
.animate({"top": "+=50px"}, "slow");
return(false);
}).removeClass("disabled");
}
}
bindA1(true);
$('.a2').click(function() {
bindA1();
return(false);
});
Работа демо здесь: http://jsfiddle.net/jfriend00/3kjaR/
Если вы действительно намерены включить и отключить обработчик для ссылок, как это, может быть проще просто установить свойство, которое вы проверяете а не удалять обработчики событий.
Вы можете использовать флаг, как это:
$('.a1').click(function(){
if (!$(this).data("disabled")) {
$('.a1').animate({"top": "+=50px"}, "slow");
$(this).data("disabled", true);
}
});
$('.a2').click(function(){
$(".a1").data("disabled", false);
});
Работа демо здесь: http://jsfiddle.net/jfriend00/NSZ8P/
я думаю, что это один простой в использовании. Я выбираю u jfriend00 – test