如何使用jquery ajax将css样式添加到动态加载的代码段中

时间:2013-09-21 08:39:16

标签: javascript jquery html css ajax

var loc="/blah/blaah.html"

$.ajax({

   url: 'xyz.php',
   type: 'POST',
   success:function()
           {
              $('#mydiv').load(loc);
           }
 )}

xyz.php正在以fllowing格式创建一个html代码段文件: -

<li id='messagebody'> <ul> <li><img src="abc.jpg" width="42" height="42"></li> <li id='content'>asdjkshadjhasdjjasdhjas</li> <li>21 Aug 20013</li> </ul> </li>

我在.load尝试了回调: -

$('#mydiv').load(loc,
             function(){
                      $('li#content').css({'overflow':'hidden'});
            });

并尝试生成带有样式属性的代码段: -

<li id='messagebody'> <ul> <li><img src="abc.jpg" width="42" height="42"></li> <li id='content' style='overflow:hidden;'>asdjkshadjhasdjjasdhjas</li> <li>21 Aug 20013</li> </ul> </li>

上述方法都没有工作,但是当我在浏览器中检查元素时,它会显示添加到所需列表元素的样式(li#content)。我正在使用jscrollpane为div创建问题吗?

4 个答案:

答案 0 :(得分:2)

试试这个

$.ajax({
    url:  'xyz.php',
    method: 'post',
    success: function(response)
    {
        $('#mydiv').append(response);
    }
}).done(function(){
   $('#content').css('overflow', 'hidden');

});

另外,我会避免在HTML属性上混用单引号和双引号

答案 1 :(得分:1)

您可以使用jQuery .done()方法,并将函数作为回调传递给那里。在该函数中,向元素添加一个类。它比添加内联样式更好。

答案 2 :(得分:0)

正是jScrollPane阻止了溢出被隐藏。我发现的解决方案是设置jScrollPane元素的contentWidth: 0px

答案 3 :(得分:0)

正确的方法是使用函数(数据)参数调用.load,然后将其包装在Object中,然后将其吐出为纯HTML,然后将其附加到div中。而不是添加任何CSS或您喜欢的任何代码作为其现在的纯html并正确插入DOM。

     $(document).ready(function(){

$('#template').load('http://localhost/site root/site folder/index.html 
 section#togo', function(template) {
 var obj = $(this).find('section#togo'), html = obj.html(); 
 $(this).append($('<div>').text(html)); 
 $('div[id^="menu"]').css({display: "block"}); 
/*$('#menu1').css({display: "block"});*/
 });

});