0

だから私は class の div を持っていngg-navigationます。HTMLに直接触れることができないため、jQueryを使用してIDを追加する必要がありました。これが私が持っていたものです:

    jQuery(function($){
        $('.ngg-navigation').attr('id', 'ngg-navigation-id');
    });

これは初期ロードでは正常に機能しますが、AJAX を実行して div を更新する他の JavaScript があり、ngg-navigation-idID が消えてしまいます。IDが表示されるたびにIDを追加する方法はありますか?

4

5 に答える 5

2

コメントでは、ID を追加する唯一の理由は CSS の特異性のためだと言っています。

そのための ID は必要ありません。CSS セレクターをより具体的にする必要があるだけです。

代わりに:

.ngg-navigation{
}

その前に親を追加して、より具体的にするようにしてください。お気に入り:

#parent-element .ngg-navigation{
}
于 2013-06-26T15:05:55.667 に答える
1

それを関数に変換し、必要なときにいつでも呼び出します。

function setId(){
    $('.ngg-navigation').attr('id', 'ngg-navigation-id');

    // you may want to consider this, as its faster:
    // $('.ngg-navigation)[0].id = 'ngg-navigation-id';
}

あなたの猫が気絶したとき、ページの読み込み(あなたがやっているように)、AJAX呼び出しからのコールバックでそれを呼び出すことができます...何でも。

$(function(){
    setId();

    $.ajax({
        ...
        success:function(){
            setId();
        }
    });
});

これは、 class を持つ要素が 1 つしかないことも前提としてngg-navigationいます。そうしないと、無効な HTML が作成されます。

パラメータを実行することで、もう少し再利用可能にすることもできます。

function setId($item,newID){
    $item.attr('id',newID);

    // or the faster alternative:
    // $item[0].id = newID;
}

そして呼び出し:

setId($('.ngg-navigation'),'ngg-navigation-id');

このようにして、他の任意の jQuery オブジェクトと ID のペアを渡すことができ、ID が設定されます。考えるだけの食べ物です。

于 2013-06-26T14:55:18.357 に答える
0

div を更新するたびに置換アクションを実行するコードを追加したいと思うかもしれません。

于 2013-06-26T14:51:35.737 に答える