0
私はここで私の関数でより効率的な方法を探しています。私はフォームのチェックボックスを変更して、私のアプリケーションのさまざまな領域間で要素を一致させています。明らかに冗長性はたくさんありますが、クラス名が重要なので、単純化するための最良の方法についてはわかりません。ここに私の機能は次のとおりです。より効率的な要素のマッチングとクラスの変更
$(function() {
$(document).on('click', '#group-element', function() {
var targets = $('.rectangle.selected');
$(targets).each(function() {
var matchingHeight = $(this).height();
var matchingWidth = $(this).width();
$(".rectangle.null").each(function() {
\t if ($(this).width() === matchingWidth) {
\t \t $(this).removeClass('matched individual-element missing-element incomplete-element').addClass('group-element');
\t }
\t });
});
$(targets).removeClass('selected individual-element missing-element incomplete-element').addClass('group-element');
$("#attribute-form .ui.radio.checkbox").removeClass('checked');
$(".group").prop("checked", true).parent().addClass('checked');
});
$(document).on('click', '#individual-element', function() {
var targets = $('.rectangle.selected');
$(targets).each(function() {
var matchingHeight = $(this).height();
var matchingWidth = $(this).width();
$(".rectangle.null").each(function() {
\t if ($(this).width() === matchingWidth) {
\t \t $(this).removeClass('matched group-element missing-element incomplete-element').addClass('individual-element');
\t }
\t });
});
$(targets).removeClass('selected group-element missing-element incomplete-element').addClass('individual-element');
$("#attribute-form .ui.radio.checkbox").removeClass('checked');
$(".individual").prop("checked", true).parent().addClass('checked');
});
$(document).on('click', '#missing-element', function() {
var targets = $('.rectangle.selected');
$(targets).each(function() {
var matchingHeight = $(this).height();
var matchingWidth = $(this).width();
$(".rectangle.null").each(function() {
\t if ($(this).width() === matchingWidth) {
\t \t $(this).removeClass('matched group-element individual-element incomplete-element').addClass('missing-element');
\t }
\t });
});
$(targets).removeClass('selected group-element individual-element incomplete-element').addClass('missing-element');
$("#attribute-form .ui.radio.checkbox").removeClass('checked');
$(".missing").prop("checked", true).parent().addClass('checked');
});
$(document).on('click', '#incomplete-element', function() {
var targets = $('.rectangle.selected');
$(targets).each(function() {
var matchingHeight = $(this).height();
var matchingWidth = $(this).width();
$(".rectangle.null").each(function() {
\t if ($(this).width() === matchingWidth) {
\t \t $(this).removeClass('matched group-element missing-element individual-element').addClass('incomplete-element');
\t }
\t });
});
$(targets).removeClass('selected group-element missing-element individual-element').addClass('incomplete-element');
$("#attribute-form .ui.radio.checkbox").removeClass('checked');
$(".incomplete").prop("checked", true).parent().addClass('checked');
});
});
についての質問が向上するので、私は/オフトピックとして、この質問を閉じるために投票しています最適化コードは、SOではなくhttps://codereview.stackexchange.com用です。 –
リビジョン機能コードがStackOverflowで範囲外です。 – trincot
別途:コードを再利用可能な関数に入れ、関数を再利用してください。 –