2016-09-05 7 views
-1

私は$httpサービスを使用してデータを取得し、DOM要素を生成します。 jQuery/AngularJSで動的要素のメソッド(例:slideToggle())を呼び出すにはどうすればよいですか?ページが読み込まれたときにこれを行う必要があります(クリックイベントなどではありません)。動的要素がDOM内にある場合の呼び出し方法

これを行うには$('#test').slideToggle()(#testは生成された要素です)私はタイムアウトが必要です。

+0

* "動的要素では?ページが読み込まれたときにこれを行う必要があります(クリックイベントなどではありません) "*まあ、それはダイナミック(ページロード後に追加されますか?)、またはページロード時にそれを行う必要がありますか? –

+2

基本的な答えは:それが要素をロードしているものであれば、ロードされた後にその上で 'slideToggle'を実行する必要があります。 –

答えて

0

説明からわかりにくいですが、リモートから取得するデータから要素を作成する場合は、スクロールする前に要素の作成/挿入が完了していることを確認する必要があります。

次のコードは、あなたがこれを行うことができます方法の例です:

$http({ 
    method: 'GET', 
    url: '/someUrl' 
}) 
.then(createAndInsertYourElement) 
.then(scrollToElem); 

function createAndInsertYourElement(data) { 
    var $elem = $('<div id="test">' + data.whateva + '</div>'); 
    $('#someElement').append($elem); 
    return $elem; 
} 

function scrollToElem($elem) { 
    $elem.slideToggle(); 
} 

.then秒。 Angularの$ httpは約束を返すので、これはオプションです。約束事に精通していない場合は素晴らしいですが、チェックアウトする必要があります:http://www.dwmkerr.com/promises-in-angularjs-the-definitive-guide/

関連する問題