ホームページ  >  に質問  >  本文

javascript - 次のパッケージ化ソリューションのうち、ベスト プラクティスはどれですか? ~

初期ステータス:

リーリー

1. 明らかに、最も頻繁に繰り返されるクラス名は weui_icon_search-focus です。変数を保存したほうがよいでしょうか? 変更する必要がある場合は、そのまま変更してください

リーリー

2.focus Blur この 2 つのイベントは実際には動作動作がほぼ同じなので、カプセル化する必要がありますか? この場合、複数の場所に記述されている weui_icon_search-focus の問題も解決できます。 リーリー

ただし、if(searchMain.val())で判断した位置の操作は仕方ないので、fnも一緒にすべきだと思います。結局、挙動の一つと同じです。そうであれば、変更する必要があります。2回変更しました。fnにパラメータを追加して2番目の文だけを実行することもできますが、これを行うといつも不快に感じます。正常に実行される場合でも、そのレベルの判断を経る必要があります~

あなたが見つけられない完璧な解決策はありますか? ~

我想大声告诉你我想大声告诉你2711日前490

全員に返信(3)返信します

  • PHPz

    PHPz2017-05-19 10:15:52

    個人的には、変数が jquery オブジェクトの場合、それを区別するために $ を追加できると思います

    var $searchMain = $('.c-search_search'), // オントロジーを検索します

    リーリー

    if ($searchMain.val()) {

    リーリー

    }

    $searchMain.on('フォーカス', function () {

    リーリー

    }).on('ぼかし', function () {

    リーリー

    });

    関数 fn(a,mark) {

    リーリー

    }

    返事
    0
  • 怪我咯

    怪我咯2017-05-19 10:15:52

    カプセル化するためにカプセル化しているのです。関数は 1 つのことだけを実行するのが最善です。

    hideとshowもtoggleと一緒にパッケージ化できますが、通常のaddClassは明らかにこの関数とは異なります。

    ここで必要なコマンドは 1 つだけなので、それらを一緒にカプセル化する意味はありません。また、現時点で同様の要件がある場合、カプセル化した関数に別の判断を追加する必要がありますか?

    ここで関数をカプセル化する目的は可読性を高めることですが、同様の関数をやみくもにカプセル化することはその逆です。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-19 10:15:52

    上記の回答に同意します。

    あなたの要件は、1 つの要素を表示し、フォーカスを取得したときに別の要素にクラスを追加することです。集中力を失うことはその逆です。

    その場合、実装は次のようになります

    リーリー

    ロジックは明確です。なぜ不必要なカプセル化が必要なのでしょうか?

    単純化を考慮する必要がある場合は、要素の表示と要素へのクラス スタイルの追加の観点から検討する必要があります。たとえば、親要素にクラス show を追加します。 CSS でサブセレクターを使用して、 要素の スタイルの切り替え の表示と非表示の問題を完了するには。

    リーリー

    この方法では、フォーカスされている場合は .parent 要素に .parent这个元素添加show样式,blur スタイルを追加し、blur の場合は削除するだけで済みます。

    返事
    0
  • キャンセル返事