0

dom 要素の var を作成してクリーンアップしようとしていますが、期待どおりの結果が得られません。これを行っていると思う理由は、関数を実行したときに要素がまだ作成されていないためです。.prepend() が呼び出された後に変数を移動することはできますが、すべての変数を一番上に保持したい場合はどうすればよいでしょうか?

このスクリプトのどこかに .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"
       });
     });
   })();
4

1 に答える 1

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定義をよく見てください: http://api.jquery.com/prepend/prepend()

于 2012-11-05T07:20:36.907 に答える