Как мне определить, был ли элемент загружен с помощью jQuery

#javascript #jquery #element #jquery-events

#javascript #jquery #элемент #jquery-события

Вопрос:

Я загружаю данные в flexigrid. Я пытаюсь использовать селекторы jQuery, чтобы сделать строки интерактивными, но у меня это не получается. Я хочу знать, был ли элемент полностью загружен, как мне это сделать?

Я хочу сделать что-то вроде if(element.load == true){//do this} . Я не уверен, как это проверить. Кто-нибудь может мне помочь с этим.

Хорошо, итак, у меня уже есть этот div, и я привязываю гибкую сетку к этому div. Я хочу знать, была ли привязана гибкая сетка.

 $("#GridLoad").flexigrid();
  

Я хочу знать, была ли привязана гибкая сетка, после этого мне нужно запустить фрагмент кода.

Использование a live() в div Gridload всегда будет верным, поскольку оно уже есть. : (

Комментарии:

1. Привязываете ли вы события щелчка к своим строкам, используя либо $.live(), либо $.delegate()?

2. Я привязываю гибкую сетку к div, я хочу выполнить фрагмент кода после того, как гибкая сетка была привязана к этому div

Ответ №1:

Я хочу знать, был ли элемент полностью загружен?

Похоже, что происходит onSuccess обратный вызов.

 $("#GridLoad").flexigrid({
   'onSuccess': function() {
      // Do this.
   }
});
  

В противном случае, если вещи, которые вы привязываете, теряются при обновлении таблицы, прикрепите события через on() или просто зафиксируйте их в постоянном элементе-предке и изучите event.target .

Комментарии:

1. @macha Не беспокойся, мне повезло, что я нашел это, потому что flexigrid плохо документирован : P

2. да, это плохо документировано. Я пытался сделать onSelect, onClick и т.д., мне повезло найти это.

3. @macha Я нашел это только потому, что изучил код плагина. 🙂

Ответ №2:

Вы можете использовать $(element).live(‘click’, function () { // сделать что-нибудь });

чтобы при последующей загрузке он имел соответствующую привязку к событию.

Комментарии:

1. Привет, Тим, спасибо за ответ, я внес правку, пожалуйста, взгляните на нее

Ответ №3:

вы могли бы использовать функцию обратного вызова метода load jquery.

вот так :
$('#result').load('ajax/test.html', function() {
alert('Load was performed.');
});

Даже если вы не используете метод ‘load’, почти любой метод в jquery поддерживает обратные вызовы, которые выполняются после завершения функциональности.
Например, ajax() имеет успешные и неудачные обратные вызовы, animations имеет обратные вызовы и т.д.