8

我需要更改正在加载的元素的位置ajax。我想用.css()它来改变它,但 jQuery 找不到该元素,因为它没有被识别。如何让 jQuery “识别”元素?

我已经阅读过live()delegate()但我无法让他们中的任何一个按照我的意愿工作。我真的很感激一些帮助!

4

3 回答 3

20

在 ajax 调用的completeor函数中进行 css 更改。success假设您正在使用load

$('#el').load(
    url,
    data,
    function(){
        $('#selector').css('position', 'absolute');
    }
);

或者(更容易举个例子)注册一个ajaxComplete事件

$(document).ajaxComplete(function(){
    if($('#elementID').length != 0) {
        $('#elementID').css('position', 'absolute');
    }
});

每次 ajax 请求完成时都会触发它,检查 #elementID 是否存在,如果存在则应用 css。

于 2011-07-28T21:39:51.060 回答
2

如果您必须在 js 变量中进行标记,则可以按如下方式进行。

$(markup).find("requiredElement").css({ set the properties here });
于 2011-07-28T21:41:36.363 回答
0

如果你想编辑它的 CSS,你需要先将它放在 DOM 中,然后再对其进行操作。

例子:

$.ajax({
    ...
    success:function(data){
        $('<div/>').appendTo('body').html(data).css('border','3px solid red');
    }
});
于 2011-07-28T21:39:47.000 回答