我使用$http
服务来获取数据并生成DOM元素。
我如何在jQuery/AngularJS
中调用动态元素上的方法(例如。slideToggle()
)?我需要在加载页面时执行此操作(而不是单击事件等)。
要做到这一点$('#test').slideToggle()
(#test是生成元素)我需要使用超时。
答案 0 :(得分: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返回一个promise。如果你不熟悉承诺,那么它们很棒,你应该检查一下:http://www.dwmkerr.com/promises-in-angularjs-the-definitive-guide/