3

私はjqueryモバイルページに取り組んでいますが、その上にいくつかのボタンがあり、たとえば次のような独自のスタイルがあります。

一種のクライアント側の「jquery駆動型ウィザード」の一部として...

<button data-function="back" class="back">Back</button>
<button data-function="next" class="next">Next</button>
<button data-function="submit" class="submit">Submit</button>

...ウィザードのどこにいるかに応じて、これらのボタンは表示/非表示になります。

問題ありません...私がスタイルに到達するまで。JQueryはそれ自体で「ボタンをラップして非表示にする」ので、次のようになります...

<div class="ui-btn ...">    
   <span class="ui-btn-inner ...">Back</span>
   <button class="back">Back</button> 
</div>

上で述べたように、それは私のボタンを隠し、そして戻るボタンの私のカスタムスタイルは事実上失われます。カスタムボタンだけですべてのボタンのスタイルを設定したくありません。

JQueryを使用して、ドキュメント対応スクリプトの一部としてカスタムスタイルを親の「div」要素に移動することを考えましたが、これはボタンごとに行う必要があるのはばかげているようで、ロジックが非常に複雑になるか、時間がかかる可能性があります。別のボタンタイプが必要になるたびにこれを行うため。

「JQuery、生成したボタン要素にこのクラスを適用したい...」という標準的な言い方はありますか、それともバグですか?

たとえば、他の人がこのアプローチを完全に使用しないことに気づきました... http://m.nationalrail.co.uk/pj/home

ボタンに関する公式のJQueryモバイルページにアクセスすると、同じ動作を示すように見えます:http: //jquerymobile.com/demos//1.2.0/docs/buttons/buttons-types.html

(アクセスする前に、ブラウザエージェントをモバイルデバイスに変更することを忘れないでください)

何か案は?理想的には、ページの速度を落としたり、青とオレンジのボタンを並べたいという理由だけで維持しなければならないコードを追加したりしないように、独自のJQueryを使用してスタイルを適切な要素に「ハッキング」しないようにします。

問題は、これが当社のメインランディングページ用であるため、スタイルが非常に重要であると考えられていることです。

@Gajotresの編集:

別のテーマを追加すると問題が解決する場合がありますが、このページの私の使命は、できるだけ早く実行することであり、複数のテーマでページをロードすると、ロード時間が長くなります。

私はこのようなことを可能な解決策と考えましたが、JQueryはすでにこれを行っているはずなので、おそらく私は何か間違ったことをしているのではないかと思いました...

<script type="text/javascript">
   var allButtons = $(button);
   allButtons.each(function() { 
      var css = $(this).className;
      $(this).prev().addClass(css);
   });
</script>

これにより、ボタンのクラスをjqueryが生成し、その場所に表示されているスパンタグに適用することになります。次に、特定のクラスを選択的にコピーするために、さらにいくつかの機能を追加する必要があります(ダムのimoだけ)。

ここでJQueryのアプローチを取ると、次のようなものを追加できます...

data-customStyle="myClass" 

...各ボタンにスタイルを設定してから次のようなものを使用します...

<script type="text/javascript">
   var customButtons = $("data-customStyle");
   customButtons.each(function() { 
      $(this).prev().addClass($(this).data("customStyle"));
   });
</script>

...「ボタンを表すjqueryタグ」にスタイルを追加します。

これについての私の考え...WTF?!?!

JQueryは、人生を楽にすることであり、確かに難しくはありませんか?基本的にサーバー上ですでに行ったことを実行するために「ハックアドイン後」のものを実行する必要はなく、JQueryが機能しなくなりました。

これはJQueryのバグですか?

4

2 に答える 2

1

最終的に答えは css の最初の c の領域に落ちました。

ページにスタイル シートを正しい順序で配置すると、カスケードを利用して正しくオーバーライドできます。

JQuery は、その「デフォルト スタイル」を非常に積極的に使用しており、多くのものをオーバーライドすることを意味する場合がありますが、ある程度の永続性は通常報われます。

于 2016-08-13T23:34:20.453 に答える
1

jQuery に関連付けられている css ファイルを見つけて、スタイリングが必要な div とスタイリングが不要な div を参照して編集してみてください。それ以外の場合、スタイルを設定したくないボタンについては、クラスまたは ID を css ファイルに存在しない別の名前に変更するだけです。

クラス (css ではクラス名はドット例 ".class" の後にあります) または id (css では id 名はハッシュ "#id" の後にあります) を変更しても、すべてではないにしても、背景色などの小さな変更が残る場合があります。同じ。このためには、またはまたはのようなメイン属性に対応する css ファイルを確認します (css 属性名は、角かっこの例「[タイトル]」の間に配置されます)。参考までに、http://www.w3schools.com/css/を確認してください。

于 2013-02-04T12:08:21.390 に答える