为尚未创建的元素制作vars

时间:2012-11-05 07:13:18

标签: jquery

我正在尝试为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"
       });
     });
   })();

1 个答案:

答案 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/