1

removeAttr()現在のプロジェクトでは、 jquery と同じメソッドを持つ zepto.js を使用しています。

margin-top一連の要素に a を適用しています – 正常に動作します。

var $apply = $('aside[role="sub"], aside[role="event-info"], aside[role="attend"]');
$apply.css('margin-top', '100px'); //works fine

ただし、サイズ変更イベントで再度削除する必要もあります。

if ( $(window).width() <= 984 ) {
    //$apply.removeAttr('style'); //doesn't take effect
    $apply.css('margin-top', '0'); //works fine
    console.log('< 984');       
} 

だから私はmargin-top後ろに設定することはでき0ますが、スタイル属性をセレクターから完全に削除することはできません。

理由はありますか?エラーは発生しませんが、効果がありません。

4

3 に答える 3

3

http://api.jquery.com/css/から

スタイル プロパティの値を空の文字列に設定すると (例: $('#mydiv').css('color', ''))、そのプロパティ が既に直接適用されている場合は、HTML スタイルであるかどうかにかかわらず、要素からそのプロパティが削除されます。属性、jQuery の .css() メソッド、またはスタイル プロパティの直接 DOM 操作を介して。ただし、スタイルシートまたは要素の CSS ルールで適用されたスタイルは削除されません。

そのため、スタイル$apply.css('margin-top', '')を削除するために使用できます。margin-top

.removeClass()要素からすべてのスタイルを削除するために使用します。

于 2012-07-26T14:25:18.443 に答える
3

それを削除する正しい方法は、を使用するときに値を設定しないこと.cssです。

$apply.css('margin-top', ''); // remove property

プロパティの値が空の場合、そのプロパティは削除されます。

詳細はこちらをご覧ください

于 2012-07-26T14:25:39.597 に答える
3

代わりに、追加および削除する CSS クラスを作成することをお勧めします。このようにして、マージン値を 1 つの場所で簡単に変更でき、複数の場所で変更する必要はありません。

CSS:

.myMargin { margin-top : 100px; }

JS:

var $apply = $('aside[role="sub"], aside[role="event-info"], aside[role="attend"]');
$apply.addClass("myMargin");

サイズ変更イベントで:

if ( $(window).width() <= 984 ) {
    $apply.removeClass("myMargin");
    console.log('< 984');       
}
于 2012-07-26T14:27:30.850 に答える