3

我对此有点困惑。我想创建一些元素(使用 jQuery),在该包装集上调用一个函数,并通过链继续这个过程几次。例如,

$('<div id="xxx"></div>')
  .call_plugin()
  .append('<div id="yyy"></div>')
  .call_plugin()
  .etc...
.end();

第一次调用插件影响 xxx,第二次影响 yyy,依此类推。但这并没有发生;我认为 call_plugin() 每次都在第一个 div (id=xxx) 上被调用。有解决方法吗?

提前致谢!

4

2 回答 2

3

再次调用 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()
     )
  );

只是不要忘记不要将 s 放在;嵌套的 s 之后append

于 2011-10-31T22:25:16.853 回答
2
$('<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
于 2011-10-31T22:25:35.140 回答