1

私はウィジェット/ガジェットベースのWebサイトで作業しています。このウェブサイトでは、ユーザーは同じページに同じウィジェット/ガジェットを同時に持つことができます。たとえば、次はウィジェット/ガジェットである可能性があります。

<div class="widget widget_1">
    <div class="header widget_header_1">
        <input type="text" class="textbox_1"/><input type="button" class="button_1"/>
    </div>
    <div class="content widget_content_1"></div>
    <div class="footer widget_footer_1"></div>
</div>

そうすれば、これらの多くを一度に画面に表示できるので、idの代わりにクラスを使用しています。

document.readyで、のデフォルト値を生成する関数を実行しますwidget_content_1。問題は、これらの同一のウィジェットの別のものがユーザーによって追加されると、デフォルト関数がすべてのwidget_content_1ウィジェットをデフォルト値にリセットすることです。これを防ぐにはどうすればよいですか。また、他のウィジェットに影響を与えることなく、新しく追加されたウィジェットにデフォルト値のみを適用するにはどうすればよいですか。

現在、コードは次のようになっています。

// on document ready:
function_default();

...

function function_default() {
    $('.widget_content_1').empty().append("default content here");
}

この問題を解決する方法を知っている人はいますか?

4

3 に答える 3

1

位置固有のセレクターを使用することは解決策ですが、最新のウィジェットが常に特定の位置にあるとは限らない場合にもエラーが発生しやすくなります。

new新しく作成されたウィジェットの作成場所にフラグを追加するだけです。

<div class="widget widget_1 new">
    ...
</div>

そして、jQueryでこのセレクターを使用します。

function function_default() {
    $('.widget.new').empty().append("default content here").removeClass('new');
}

n個の新しいウィジェットが作成されている場合、これによりすべてのウィジェットにデフォルトのコンテンツも追加されます。

于 2012-05-14T11:38:37.827 に答える
1

jQuery:lastセレクターを使用して、次のように最後の(できれば新しく追加された)ウィジェットを選択できます。

function function_default() {
    $('.widget_content_1:last').empty().append("default content here");
}

ウィジェットが1つしかない場合は、最初のウィジェットが選択されます。

于 2012-05-14T11:35:40.213 に答える
0

新しく作成したものを追加する場合、:lastセレクターまたは.last( )関数を使用できますか?

例えば:

$('.widget_content_1').last( ).empty( ).append('Default content')
于 2012-05-14T11:35:56.797 に答える