JQuery: добавить один раз и остановить (работал в более старых версиях) - PullRequest
3 голосов
/ 09 февраля 2011

Итак, вот код, который я использую:

$(function(){
    $('<div id="info" style="width:auto; height:auto;"/>').load('test.php?var='+d+' #se', function() {
        $('#main').append(this);
    });
});
}

Теперь, когда я запускаю функцию (с ключом в поле ввода), загруженный div добавляется снова и снова при каждом событии keyup,

Я использую jQuery 1.5 - в более старых версиях, а именно 1.2.6, div не был добавлен после первого раза, и он работал нормально (ошибка?).

Как мнепредотвратить добавление div снова и снова?(отключение «триггера», к сожалению, не вариант.) Я также попробовал appendTo, что в значительной степени та же проблема.

Кто-нибудь, помогите мне, пожалуйста!Большое спасибо

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Звучит так, как будто вы можете использовать .one для привязки вашего обработчика ключей:

$('whatever').one('keyup', function() {
    $('<div id="info" style="width:auto; height:auto;"/>').load('test.php?var='+d+' #se', function() {
        $('#main').append(this);
    });
});

Функция .one действует так же, как .bind, за исключением того, что она отменяет привязку после выполнения один раз.

0 голосов
/ 09 февраля 2011

использование

$(function(){
   if($("#info").length==0)
   {
      $('<div id="info" style="width:auto; height:auto;"/>').load('test.php?var='+d+' #se', function() {
        $('#main').append(this);
      });
   }
});
}

Предполагается, что "#info" добавляется динамически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...