Как создавать элементы и выбирать их на лету с помощью jQuery
Я немного озадачен этим. Я хотел бы создать некоторые элементы (используя jQuery), вызвать функцию для этого упакованного набора и продолжить этот процесс несколько раз по цепочке. Например,
$('<div id="xxx"></div>')
.call_plugin()
.append('<div id="yyy"></div>')
.call_plugin()
.etc...
.end();
Если первый вызов плагина влияет на xxx, второй - на yyy и т. Д. Но этого не происходит; Я думаю, что call_plugin() вызывается на первом div (id=xxx) каждый раз. Есть ли обходной путь?
Заранее спасибо!
2 ответа
Снова вызовите jQuery, чтобы другие элементы выполняли определенные функции, и добавьте .append
:
$('<div id="xxx"></div>')
.call_plugin()
.append(
$('<div id="yyy"></div>')
.call_plugin()
);
Вы можете вкладывать их так же:
$('<div id="xxx"></div>')
.call_plugin()
.append(
$('<div id="yyy"></div>')
.call_plugin()
.append(
$('<div id="zzz"></div>')
.call_plugin()
)
);
Только не забудь не ставить ;
с после вложенного append
s.
$('<div id="xxx"></div>')
.call_plugin()
.append('<div id="yyy"></div>')
.find('#yyy') // added this. From now on the current selection is #yyy element
.call_plugin(); // this will be called on #yyy
.end()
метод (который вы используете в конце) используется для завершения текущего выбора в цепочке, если вы хотите продолжить предыдущий выбор из той же цепочки...
В вашем примере
$('<div id="xxx"></div>')
.call_plugin()
.append('<div id="yyy"></div>')
.find('#yyy') // added this. From now on the current selection is #yyy element
.call_plugin() // called on #yyy
.end() // this returns the selection to be #xxx
.something()//something else that will be called on #xxx