Что случилось с хорошим старым JavaScript?Почему вы все пытаетесь выяснить это с помощью чистого jQuery?
var hasBeenClicked = false;
$('div.next a').live('click',function() {
if(!hasBeenClicked){
hasBeenClicked = true;
$('.content').load('page/3/ #info','',function(){
//do something
//If you want it clickable AFTER it loads just uncomment the next line
//hasBeenClicked = false;
});
}
return false;
});
В качестве примечания: никогда никогда никогда не используйте .live()
.Вместо этого используйте .delegate как:
var hasBeenClicked = false;
$('div.next').delegate('a','click',function() {
if(!hasBeenClicked){
hasBeenClicked = true;
$('.content').load('page/3/ #info','',function(){
//do something
//If you want it clickable AFTER it loads just uncomment the next line
//hasBeenClicked = false;
});
}
return false;
});
Почему?Пол Ирриш объясняет: http://paulirish.com/2010/on-jquery-live/
Чтобы ответить на ваш комментарий ...
Это может произойти, если ваша функция делегата вложена в ваш вызов AJAX (.load()
, .get()
и т. Д.).div.next
должен быть на странице, чтобы это работало.Если div.next
нет на странице, и это не является вложенным, просто сделайте это:
$('#wrapper').delegate('div.next a','click',function() {
http://api.jquery.com/delegate/
Делегат нуждается в селекторе, который будет родительским длядинамически добавляемый элемент.Затем первый параметр делегата (div.next a
в последнем примере) - это элемент, который нужно искать в выделенном элементе (#wrapper
).Обертка также может быть body
, если она не обернута ни в один элемент.