2014-02-02 2 views
0

У меня есть эта функция для вызова компонента к моему основному контейнеруулучшить JQuery код

Вот мой HTML

<div id="container"> 
    <div id="photos"> 
    </div> 
</div> 

И мой JS файл

$(document).on("ready", call_data); 

function call_data(){ 
    var snippet = "<div class='image'><div class='image-body'><img src='img/59.jpg' height='320px' ></div><div class='image-title'><i class='fa fa-map-marker'></i> Silvania, Colombia <img src='img/png/co.png' alt='colombia'></div><div class='image-author'><div class='author'><i class='fa fa-camera-retro'></i> by Valeria Bayona</div></div></div>" 
    $("#photos").append(snippet); 
}; 

Могу ли я сделать что-то вроде:

var snippet = "<div class='image'></div>"; 
snippet.append("<div class='image-body'>"); 
... 
+1

'вар фрагмент = $ ("

");' FYI, '$ (документ) .on (" готов", обработчик);' не является обычным метод привязки готового обработчика, таким образом вы теряете обещающее поведение события псевдоготовки, которое заставляет готовое событие быть уволенным, даже документ уже «готов». Этот '$ (document) .on (" ready ", call_data);' должен быть написан: '$ (call_data);' –

+0

Позвольте мне посмотреть, понимаю ли я, это должно быть: $ (document) .on ("ready" , $ (call_data)); ? – AndreFontaine

+0

Нет, это должно быть: '$ (call_data);' или '$ (document) .ready (call_data);' но не: '$ (document) .on (" ready ", call_data);' –

ответ

1

Нет, для использования t он jQuery append функция, Объект, который вы используете, должен быть объектом jQuery. Вы должны сделать что-то похожее на вашу call_data функции:

var snippet = $("<div class='image'></div>"); 
snippet.append("<div class='image-body'>"); 

В вашем примере, вы Тринг называть append на объекте строки. Строковый объект не реализует метод append:

var s = "my string"; 
s.append("another string"); // TypeError: Object my string has no method 'append' 
Смежные вопросы