Сохраняет готовность нескольких изображений - PullRequest
1 голос
/ 03 августа 2010

Я работаю в SharePoint с jQuery, и каждый раз, когда я использую функцию prepend () в сочетании с функцией each () для отображения изображения перед каждой ячейкой в ​​списке, я получаю несколько таких изображений.

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

Вот фрагмент кода:

$(item).each(function(i, e) {
  $(e).prepend(image); 
});

Изображение, кстати, image - это переменная, котораясодержит HTML-код для изображения.Item это:

var item = #MSO_ContentTable td.ms-vb2>div:has(>div);

Это место потрясающе!

Ответы [ 2 ]

0 голосов
/ 03 августа 2010

Я подозреваю, что проблема может быть в селекторе для item. По моему опыту, HTML, сгенерированный SharePoint, содержит много «пустых» элементов, которые, хотя и не видны на отображаемой странице, воспринимаются запросами jQuery.

Я считаю Mozilla Firefox и Firebug незаменимыми при создании селекторов jQuery. Вот что я предлагаю:

  1. Получить Firefox и Firebug (если вы этого еще не сделали)
  2. Откройте свою страницу SharePoint в FF и нажмите F12, чтобы активировать FB
  3. В FB перейдите на вкладку «Консоль» (может потребоваться сначала выбрать «Включено» в раскрывающемся меню «Консоль»)
  4. В строке внизу консоли (обозначается >>>) введите свой jQuery: jQuery("#MSO_ContentTable td.ms-vb2>div:has(>div)")
  5. Hit Return; В окне вывода консоли должны отображаться все совпадения, представленные селектором. Наведите указатель мыши на каждый из них, чтобы увидеть его выделенным на странице.

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

Обязательно используйте jQuery вместо $ в окне консоли FB, так как псевдоним доллара также используется FB.

Удачи!

0 голосов
/ 03 августа 2010

Вы можете просто сделать это:

$(item).each(function(i, e) {
  $(e).prepend(image[i]); 
});

Но мне неясно, что такое image, если это набор элементов, он будет готов к каждому совпадению itemселектор находит.Если это элемент jQuery или массив, вышеприведенное сработает, если это что-то еще, пожалуйста, опубликуйте его.

Приведенный выше пример берет соответствующую запись image и добавляет ее к текущему совпадению itemтот же самый индекс, это лучшее, что я могу получить из вопроса, который был задан.

...