我正在尝试为dom元素创建一个var来清理它,但它并没有给我预期的结果。我认为这样做的原因是因为在运行函数时尚未创建元素。调用.prepend()之后我可以移动var但是如果我想将所有变量保持在顶部怎么办?
在这个脚本中的某处添加.on()会解决我的问题,还是应该在运行.prepend之后将var移动几行,而忘记将vars保持在最顶层?
(function () {
var cp = $(".call-out p")
$('li').eq(2).prepend('hi');
$('div.call-out').prepend("<p>MY UL</p>");
cp.css({
'font-size': '3em',
'background': 'orange'
});
cp.animate({
width: "1000px",
height: "1250px"
});
cp.click(function (e) {
$(this).animate({
width: "125px",
height: "90px"
});
});
})();
答案 0 :(得分:1)
jQuery对象可以用html构建,所以你可以这样做:
var cp = $("<p>MY UL</p>").css({....});/* can add css or event handlers before insert into DOM*/
$('li').eq(2).prepend('hi');
$('div.call-out').prepend(cp);
/* although created outside the DOM, once inserted the object still exists to use jQuery methods on*/
cp.animate({....});
像html()
和prepend()
这样的方法会接受多种类型作为内容参数,包括jQuery对象
仔细查看API文档中content
的{{1}}定义:http://api.jquery.com/prepend/