1

私はajaxからリストを作成していますが、その部分はうまく機能します。また、sreenwidth をチェックし、それに応じて一部の div の幅を変更していますが、ajax を使用すると機能しません...

これが私がすることです:

$(document).ready(function(){

    var screenwidth = $(window).width();
    swidth = screenwidth - 20;

    $("#thelist li").css("width", swidth+"px");

    $.getJSON('linktomyphppage.php', function(data) {

        var array = [];

        $.each(data, function (i, val){

            array.push($("#thelist").append("<li>"+val.fname+" "+val.lname+"</li>"));

        });

    });

});

私のjsonは次のようになります:

[{"fname":"Peter","lname":"Hanson"},{"fname":"Michael","lname":"Bird"}]

json の部分は問題なく動作しますが、CSS の部分がまったく取得されないようです。このようにするとうまくいきますが、jsonは使用しません。

for (var i = 0; i < 2; i++) {

    array.push($("#thelist").append("<li>"+val.fname+" "+val.lname+"</li>"));

}

助けを願っています、そして前もって感謝します:-)

4

2 に答える 2

0

これを試して;

$(document).ready(function(){
    var screenwidth = $(window).width();
    swidth = screenwidth - 20;

    $.getJSON('linktomyphppage.php', function(data) {
        var array = []
            html  = '';

        $.each(data, function (i, val){
            html +=  "<li style='width:"+ swidth +"px;'>"+val.fname+" "+val.lname+"</li>";
        }

        $("#thelist").append(html);
    });
});

スタイルを作成した後にスタイルを設定する必要がありliます。

またappend、複数の DOM 操作は (比較的) 遅く、リソースを大量に消費するため、単一の操作を行うことをお勧めします。

于 2013-07-15T07:49:50.090 に答える
0

スクリプトを介して CSS を設定するタイミングの依存関係を回避するには、ルールを定義するだけです。

#thelist li {
    position: relative;
    right: 20px; 
}

一般に、CSS を動的に作成してコード全体に挿入するコマンドを散りばめようとするよりも、単に CSS を記述する方がはるかに望ましいです。理想的なケースでは、スクリプトはクラスを追加/削除するだけです。

于 2013-07-15T03:10:44.867 に答える