RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-195878

Aleksandr's questions

Martin Hope
Aleksandr
Asked: 2022-10-02 03:11:51 +0000 UTC

从 DOM 确认删除

  • 1

模态中删除确认的任务。但是,问题是,如果单击所有元素并单击“取消”按钮,然后单击任何一个元素上的“删除”按钮,则所有元素都将被删除。

我不明白怎么回事,请解释一下。

const modal = document.querySelector('.modal')
document.querySelector('.list').addEventListener('click', (event) => {
  const target = event.target

  if (target.classList.contains('delete')) {
    const task = document.querySelector(`[data-id="${target.dataset.delete}"]`)

    deleteTask(task)
  }
})

function deleteTask(task) {
  modal.classList.remove('hidden')

  modal.addEventListener('click', (event) => {
    if (event.target.classList.contains('cancel')) {
      modal.classList.add('hidden')
      return false
    } else if (event.target.classList.contains('confirm')) {
      modal.classList.add('hidden')
      task.remove()
    }
  })
}
.modal {
  position: absolute;
  background-color: #fff;
  top: 0;
  left: 0;
  padding: 32px;
}

.hidden {
  display: none;
}
<ul class="list">
  <li class="item" data-id="1">
    <span class="text">Первое задание 1</span>
    <button class="delete" data-delete="1">Удалить</button>
  </li>
  <li class="item" data-id="2">
    <span class="text">Первое задание 2</span>
    <button class="delete" data-delete="2">Удалить</button>
  </li>
  <li class="item" data-id="3">
    <span class="text">Первое задание 3</span>
    <button class="delete" data-delete="3">Удалить</button>
  </li>
</ul>


<div class="modal hidden">
  <h4>Вы хотите удалить это задание?</h4>
  <button class="cancel">Отмена</button>
  <button class="confirm">Удалить</button>
</div>

javascript
  • 1 个回答
  • 26 Views
Martin Hope
Aleksandr
Asked: 2022-08-23 23:10:14 +0000 UTC

将类添加到先前的元素

  • 0

我正在尝试解决星级问题。当悬停在任何一颗星星上时,这颗星星应该被分配到黄金级,这样的级应该分配给左侧之前的所有星星。

"use strict";

const starsContainer = document.querySelector('.stars_container');
const stars = document.querySelectorAll('.fas');

starsContainer.addEventListener('mouseover', e => {
  let item = e.target;
  if (item.classList.contains('fas')) {
    Array.from(stars).forEach((el, index, arr) => {
      item.classList.add('golden');
      item = item.previousElementSibling;
    });
  }
});
i {
  font-size: 50px;
}

.golden {
  color: gold;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" rel="stylesheet" />

<div class="stars_container">
  <i class="fas fa-star"></i>
  <i class="fas fa-star"></i>
  <i class="fas fa-star"></i>
  <i class="fas fa-star"></i>
  <i class="fas fa-star"></i>
</div>

当我们将鼠标从星星上移开时,所有提供的黄金级都应该被删除。

我写了一些东西,但我得到一个错误:

Error {
  "message": "Uncaught TypeError: Cannot read properties of null (reading 'classList')",
  "filename": "https://stacksnippets.net/js",
  "lineno": 35,
  "colno": 12
}

在控制台中:

Uncaught TypeError: Cannot read properties of null (reading 'classList')
at Array.forEach (<anonymous>)
at HTMLDivElement.<anonymous
javascript
  • 2 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2022-04-15 00:36:05 +0000 UTC

Webpack 在导入时重命名变量

  • 0

遇到了这个问题:

tab.js 包含以下数据:

let qwerty = 'qwerty'

scripts.js 包含:

'use strict';
import 'tab.js'

console.log('qwerty', qwerty);

这会导致页面出现错误:

Uncaught ReferenceError: qwerty is not defined

我查看了编译的文件并看到了这个:

'use strict';
let tab_qwerty = 'qwerty';
console.log('qwerty', qwerty);

原来,在编译的时候,webpack 将qwerty变量重命名为tab_qwerty,所以我要获取的变量是不可用的。如何进行暗示?

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2022-03-16 14:40:56 +0000 UTC

如何在jQuery中显示条件比较?

  • 1

有一个 5 列的简短调查,其中有 5 个答案选择。

我做了最基本的条件,如果答案超过2分,那么这个答案就赢了。

但是如果答案有 2 分,其余的有 1 分呢?如何计算获胜者?

TK原本是:

  1. 五个问题。

  2. 他们有 5 个答案。

  3. 5 位作者参与所有问题;附有 5 瓶葡萄酒的最终结果。

  4. 哪个作家获得了更多选定的答案,然后在最后向用户提供一瓶附在特定作家身上的酒。

  5. 如果没有获胜者,则将随机抽取一瓶。

$(document).ready(function() {
  $('.js__control').click(function() {
    let js__remarkCount = $('.js__remark:checked').length,
      js__mayakovskyCount = $('.js__mayakovsky:checked').length,
      js__bulgakovCount = $('.js__bulgakov:checked').length,
      js__fitzgeraldCount = $('.js__fitzgerald:checked').length,
      js__hemingwayCount = $('.js__hemingway:checked').length;


    if (js__remarkCount > 2) {
      $('.result').text('js__remark: ' + js__remarkCount);
      console.log('js__remark: ' + js__remarkCount);
    } else if (js__mayakovskyCount > 2) {
      $('.result').text('js__remark: ' + js__mayakovskyCount);
      console.log('js__mayakovsky: ' + js__mayakovskyCount);
    } else if (js__bulgakovCount > 2) {
      $('.result').text('js__remark: ' + js__bulgakovCount);
      console.log('js__bulgakov: ' + js__bulgakovCount);
    } else if (js__fitzgeraldCount > 2) {
      $('.result').text('js__remark: ' + js__fitzgeraldCount);
      console.log('js__fitzgerald: ' + js__fitzgeraldCount);
    } else if (js__hemingwayCount > 2) {
      $('.result').text('js__remark: ' + js__hemingwayCount);
      console.log('js__hemingway: ' + js__hemingwayCount);
    } else {
      /* Вот тут как-то надо найти победителя */

      console.log('js__remark: ' + js__remarkCount);

      console.log('js__mayakovsky: ' + js__mayakovskyCount);

      console.log('js__bulgakov: ' + js__bulgakovCount);

      console.log('js__fitzgerald: ' + js__fitzgeraldCount);

      console.log('js__hemingway: ' + js__hemingwayCount);
    }


    $('.quiz').addClass('hide').next('#final').removeClass('hide');
  });
});
.quiz {
  display: flex;
  flex-wrap: wrap;
}

.box {
  width: 50%;
}

.js__control {
  width: 100%;
  padding: 8px;
  margin-top: 32px;
}

.item {
  display: block
}

.hide {
  display: none
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="quiz">
  <div class="box">
    <h3>Вы влюбились. Как будете завоевывать объект воздыханий?</h3>


    <label class="item">
      <input type="radio" name="1" class="js__remark" checked>
      Начну очаровывать безупречными манерами (Ремарк)
    </label>


    <label class="item">
      <input type="radio" name="1" class="js__mayakovsky">
      Задарю подарками (Маяковский)
    </label>


    <label class="item">
      <input type="radio" name="1" class="js__bulgakov">
      Посвящу роман (Булгаков)
    </label>


    <label class="item">
      <input type="radio" name="1" class="js__fitzgerald">
      Позову на танцы (Фицджеральд)
    </label>


    <label class="item">
      <input type="radio" name="1" class="js__hemingway">
      Никак, я красив и талантлив (Хемингуэй)
    </label>
  </div>


  <div class="box">
    <h3>Какое у вас хобби?</h3>


    <label class="item">
      <input type="radio" name="2" class="js__hemingway" checked>
      Спорт (Хемингуэй)
    </label>


    <label class="item">
      <input type="radio" name="2" class="js__bulgakov">
      Настольные игры (Булгаков)
    </label>


    <label class="item">
      <input type="radio" name="2" class="js__remark">
      Коллекционирование (Ремарк)
    </label>


    <label class="item">
      <input type="radio" name="2" class="js__fitzgerald">
      Музыка (Фицджеральд)
    </label>


    <label class="item">
      <input type="radio" name="2" class="js__mayakovsky">
      Игра в бильярд (Маяковский)
    </label>
  </div>


  <div class="box">
    <h3>Как бы вы описали свой характер?</h3>


    <label class="item">
      <input type="radio" name="3" class="js__hemingway" checked>
      Властный, мужественный, бесстрашный (Хемингуэй)
    </label>


    <label class="item">
      <input type="radio" name="3" class="js__bulgakov">
      Обаятельный и ранимый (Булгаков)
    </label>


    <label class="item">
      <input type="radio" name="3" class="js__remark">
      Сложный и противоречивый (Ремарк)
    </label>


    <label class="item">
      <input type="radio" name="3" class="js__fitzgerald">
      Романтичный и лёгкий (Фицджеральд)
    </label>


    <label class="item">
      <input type="radio" name="3" class="js__mayakovsky">
      Вежливый и ласковый (Маяковский)
    </label>
  </div>


  <div class="box">
    <h3>Какие напитки должны быть в домашнем баре?</h3>


    <label class="item">
      <input type="radio" name="4" class="js__remark" checked>
      Полное разнообразие вкусов и стилей, чтобы сделать любой коктейль (Ре-марк)
    </label>


    <label class="item">
      <input type="radio" name="4" class="js__bulgakov">
      Исключительное крепкие (Булгаков)
    </label>


    <label class="item">
      <input type="radio" name="4" class="js__mayakovsky">
      Лёгкие (Маяковский)
    </label>


    <label class="item">
      <input type="radio" name="4" class="js__hemingway">
      Всё зависит от настроения (Хемингуэй)
    </label>


    <label class="item">
      <input type="radio" name="4" class="js__fitzgerald">
      Крепкие с нейтральным вкусом. Им можно придать любую форму (Фицдже-ральд)
    </label>
  </div>


  <div class="box">
    <h3>Куда бы отправились в путешествие?</h3>


    <label class="item">
      <input type="radio" name="5" class="js__remark" checked>
      По всему миру (Ремарк)
    </label>


    <label class="item">
      <input type="radio" name="5" class="js__mayakovsky">
      Париж (Маяковский)
    </label>


    <label class="item">
      <input type="radio" name="5" class="js__bulgakov">
      Прага или Будапешт (Булгаков)
    </label>


    <label class="item">
      <input type="radio" name="5" class="js__hemingway">
      Куба (Хемингуэй)
    </label>


    <label class="item">
      <input type="radio" name="5" class="js__fitzgerald">
      Лазурный берег (Фицджеральд)
    </label>
  </div>


  <button class="js__control" type="button">
    Подсчитать
  </button>
</div>


<section id="final" class="hide">
  Готово! <span class="result"></span>
</section>

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2022-02-18 03:58:08 +0000 UTC

如何计算两个已知总和的百分比?

  • 2

基础金额是已知的,有两个空字段:“新价格”和“百分比”。我设法编写了逻辑,如果您在“百分比”字段中输入百分比数字,则计算出正确的金额,并将其插入“新价格”字段中。

但是,如果我们在“新价格”字段中输入一个数字, “百分比”字段会计算错误的基础金额百分比。

$(document).ready(function() {
  let priceBase = parseInt($('.price-base').text().replace(/[^0-9]/gi, '')); // получаем базовую цену

  let priceDiscount = '.price-discount'; // поле с ценой со скидкой
  let percent = '.percent'; // поле процентов

  $(percent).on('keyup change', function() {
    let thisPercent = $(this).val();
    let resultPrice = priceBase / 100 * thisPercent; //вычисление процентов
    $(priceDiscount).val(priceBase - resultPrice);
  });


  //Пытаюсь вычислить процент от двух сумм
  $(priceDiscount).on('keyup change', function() {
    let thisPrice = $(this).val();
    let resultPrice = thisPrice / priceBase;
    $(percent).val(resultPrice);
  });
});
.container {
  display: flex;
}

.container div {
  padding: 30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
  <div class="price-base">100 ₽</div>

  <div>
    <input type="text" class="price-discount" placeholder="новая цена"> ₽
  </div>

  <div>
    <input type="text" class="percent" placeholder="процент"> %
  </div>
</div>

jquery
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-08-28 20:55:06 +0000 UTC

这在 jquery 中,但在 javascript 中

  • 0

$(document).ready(function() {
  $('.show').click(function() {
    let thisText = $(this).text();

    $(this).siblings('.search').fadeToggle().focus();

    if (thisText !== 'Скрыть') {
      $(this).text('Скрыть');
      $(this).siblings('.list').addClass('scroll');
    } else {
      $(this).text('Посмотреть все');
      $(this).siblings('.list').removeClass('scroll');
    }
  });
});
div .search {
  margin-bottom: 30px;
  display: none
}

.list {
  margin-bottom: 30px;
  height: 100px;
  overflow-y: hidden;
}

.list label {
  display: block
}

.scroll {
  color: #999;
  overflow-y: scroll;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">
  <h4 class="title">Регион</h4>

  <div>
    <input type="text" class="search form-control">

    <div class="list">
      <label>
                <input type="checkbox" checked>
                <span>Абруццо</span>
            </label>
      <label>
                <input type="checkbox">
                <span>Альто-Адидже</span>
            </label>
      <label>
                <input type="checkbox">
                <span>Аминдеон</span>
            </label>
      <label>
                <input type="checkbox">
                <span>Апулия</span>
            </label>
      <label>
                <input type="checkbox">
                <span>Арагацотн</span>
            </label>
      <label>
                <input type="checkbox" checked>
                <span>Абруццо</span>
            </label>
      <label>
                <input type="checkbox">
                <span>Альто-Адидже</span>
            </label>
      <label>
                <input type="checkbox">
                <span>Аминдеон</span>
            </label>
      <label>
                <input type="checkbox">
                <span>Апулия</span>
            </label>
      <label>
                <input type="checkbox">
                <span>Арагацотн</span>
            </label>
    </div>

    <button class="show btn btn-primary">Посмотреть все</button>
  </div>
</div>

这是我在 javaScript 中尝试做的事情:

document.querySelectorAll('.show').forEach(item => {
    item.addEventListener('click', function(e) {
        console.log('Click');
        this.textContent('скрыть');
    }.bind(this), false);
});

控制台显示“点击”,但文字没有改变,我用不同的方式尝试过,没有。

javascript
  • 2 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-07-22 21:25:30 +0000 UTC

如何在 jQuery 中创建过滤器?

  • 1

我正在尝试在 jQuery 上创建一个过滤器,我不明白从什么开始,给我一个想法。

到目前为止,我已经编写了以下代码:

$(".js-filter").on("click", function() {
  let items = $(".item");
  let dataColor = $(this).attr("data-color");
  let dataSugar = $(this).attr("data-sugar");
  let typeBox = $(".type-box");
  let dataType = $(this).attr("data-type");


  if (dataColor) {
    items.hide();
    items.filter("." + dataColor).show();
  } else if (dataType) {
    typeBox.hide();
    typeBox.filter("." + dataType).show();
  } else if (dataSugar) {
    items.hide();
    items.filter("." + dataSugar).show();
  }
});
.jumbotron li {
  cursor: pointer;
  transition: color .3s;
  user-select: none;
}

.jumbotron li:hover {
  color: darkred;
}

.jumbotron li:active {
  color: dodgerblue;
}

.list {
  padding-left: 0;
  list-style: none;
}

.item {
  padding: 15px;
  margin-bottom: 15px;
  background: dodgerblue;
  color: #fff;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">
  <div class="row jumbotron">
    <div class="col-4">
      <h3>Цвет</h3>
      <ul>
        <li class="js-filter" data-color="red">Красное</li>
        <li class="js-filter" data-color="white">Белое</li>
        <li class="js-filter" data-color="rose">Розовое</li>
      </ul>
    </div>

    <div class="col-4">
      <h3>Тип алкоголя</h3>
      <ul>
        <li class="js-filter" data-type="type-cognac">Коньяк</li>
        <li class="js-filter" data-type="type-wine">Вино</li>
        <li class="js-filter" data-type="type-sparkling">Игристое</li>
        <li class="js-filter" data-type="all">Все</li>
      </ul>
    </div>

    <div class="col-4">
      <h3>Сахар</h3>
      <ul>
        <li class="js-filter" data-sugar="semi-sweet">Полусладкое</li>
        <li class="js-filter" data-sugar="sweet">Сладкое</li>
        <li class="js-filter" data-sugar="semi-dry">Полусухое</li>
        <li class="js-filter" data-sugar="dry">Сухое</li>
      </ul>
    </div>
  </div>


  <section class="wrapper row">
    <div class="wine type-box col-4">
      <h2 class="title">Вино</h2>

      <ul class="list">
        <li class="item dry red">
          <div>Вино</div>
          <div>Сухое</div>
          <div>Красное</div>
        </li>
        <li class="item semi-dry white">
          <div>Вино</div>
          <div>Полусухое</div>
          <div>Белое</div>
        </li>
        <li class="item semi-sweet rose">
          <div>Вино</div>
          <div>Полусладкое</div>
          <div>Розовое</div>
        </li>
        <li class="item sweet red">
          <div>Вино</div>
          <div>Сладкое</div>
          <div>Красное</div>
        </li>
      </ul>
    </div>

    <div class="sparkling type-box col-4">
      <h2 class="title">Игристое</h2>

      <ul class="list">
        <li class="item dry red">
          <div>Игристое вино</div>
          <div>Сухое</div>
          <div>Красное</div>
        </li>
        <li class="item semi-dry white">
          <div>Вино</div>
          <div>Полусухое</div>
          <div>Белое</div>
        </li>
        <li class="item semi-sweet rose">
          <div>Вино</div>
          <div>Полусладкое</div>
          <div>Розовое</div>
        </li>
        <li class="item sweet red">
          <div>Вино</div>
          <div>Сладкое</div>
          <div>Красное</div>
        </li>
      </ul>
    </div>

    <div class="cognac type-box col-4">
      <h2 class="title">Коньяк</h2>

      <ul class="list">
        <li class="item french">
          <div>Французский</div>
        </li>
        <li class="item armenian">
          <div>Армянский</div>
        </li>
        <li class="item russian">
          <div>Российский</div>
        </li>
      </ul>
    </div>
  </section>
</div>

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-06-19 22:58:01 +0000 UTC

选中多个复选框

  • 0

帮助解决问题,为所有输入分配禁用,除了两个具有选中属性的输入。

也就是说,可以从整个列表中选择两个选项。

$(document).ready(function() {

  let count = $('.custom-control-input').length;

  $('.custom-control-input').click(function() {

    for (let i = 0; i <= count; i++) {
      if ($('.custom-control-input:not(:checked)')) {
        $('.custom-control-input').attr('disabled', 'disabled');
      }
    }
  });

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="list">
  <li>
    <input type="checkbox" class="custom-control-input">
    <span>Роспись по стеклу</span>
  </li>
  <li>
    <input type="checkbox" class="custom-control-input">
    <span>Валяние из войлока</span>
  </li>
  <li>
    <input type="checkbox" class="custom-control-input">
    <span>Приготовление мыла</span>
  </li>
  <li>
    <input type="checkbox" class="custom-control-input">
    <span>Создание авторских украшений</span>
  </li>
  <li>
    <input type="checkbox" class="custom-control-input">
    <span>Мастер класс по живописи</span>
  </li>
  <li>
    <input type="checkbox" class="custom-control-input">
    <span>Мастер класс по флористике</span>
  </li>
</ul>

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-04-27 22:30:56 +0000 UTC

在 JS 中创建手风琴时,只有第一行有效

  • 0

我用纯 JavaScript 和动画创建手风琴。问题是只有第一行按我的需要工作,其余的不打开:

let slideUp = (target, duration = 500) => {
  target.style.transitionProperty = 'height, margin, padding';
  target.style.transitionDuration = duration + 'ms';
  target.style.boxSizing = 'border-box';
  target.style.height = target.offsetHeight + 'px';
  target.offsetHeight;
  target.style.overflow = 'hidden';
  target.style.height = 0;
  target.style.paddingTop = 0;
  target.style.paddingBottom = 0;
  target.style.marginTop = 0;
  target.style.marginBottom = 0;

  window.setTimeout(() => {
    target.style.display = 'none';
    target.style.removeProperty('height');
    target.style.removeProperty('padding-top');
    target.style.removeProperty('padding-bottom');
    target.style.removeProperty('margin-top');
    target.style.removeProperty('margin-bottom');
    target.style.removeProperty('overflow');
    target.style.removeProperty('transition-duration');
    target.style.removeProperty('transition-property');
  }, duration);
}

let slideDown = (target, duration = 500) => {
  target.style.removeProperty('display');
  let display = window.getComputedStyle(target).display;

  if (display === 'none')
    display = 'block';

  target.style.display = display;
  let height = target.offsetHeight;
  target.style.overflow = 'hidden';
  target.style.height = 0;
  target.style.paddingTop = 0;
  target.style.paddingBottom = 0;
  target.style.marginTop = 0;
  target.style.marginBottom = 0;
  target.offsetHeight;
  target.style.boxSizing = 'border-box';
  target.style.transitionProperty = "height, margin, padding";
  target.style.transitionDuration = duration + 'ms';
  target.style.height = height + 'px';
  target.style.removeProperty('padding-top');
  target.style.removeProperty('padding-bottom');
  target.style.removeProperty('margin-top');
  target.style.removeProperty('margin-bottom');
  window.setTimeout(() => {
    target.style.removeProperty('height');
    target.style.removeProperty('overflow');
    target.style.removeProperty('transition-duration');
    target.style.removeProperty('transition-property');
  }, duration);
}

let slideToggle = (target, duration = 500) => {
  if (window.getComputedStyle(target).display === 'none') {
    return slideDown(target, duration);
  } else {
    return slideUp(target, duration);
  }
}
var accordionTitle = document.querySelector('.accordion-title');

accordionTitle.addEventListener('click', function () {
slideToggle(document.querySelector('.collapse'), 400);
accordionTitle.classList.toggle('collapsed');
});
.collapse:not(.show) {
  display: none;
}
<div class="accordion-card">
  <button class="accordion-title collapsed">
        Значения параметров
    </button>
  <div class="collapse">
    <p>
      Аргумент должен соответствовать допустимой строке селектора, содержащей один или несколько селекторов. При указании нескольких селекторов необходимо разделять значения запятыми. Если по какой-то причине вы используете в наименовании селекторов символы,
      которые не являются частью стандартного синтаксиса CSS, то при поиске такие символы должны быть экранированы с помощью символа обратной косой черты ("\"). Поскольку обратная косая черта также является специальным символом (escape) в JavaScript,
      то при вводе литеральной строки ее необходимо экранировать дважды. Обязательный параметр.
    </p>
  </div>
</div>

<div class="accordion-card">
  <button class="accordion-title collapsed">
        Исключения
    </button>

  <div class="collapse">
    <p>
      Возникает в том случае, если синтаксис указанного селектора или селекторов некорректен.
    </p>
  </div>
</div>

<div class="accordion-card">
  <button class="accordion-title collapsed">
        Результат нашего примера:
    </button>

  <div class="collapse">
    <p>
      В этом примере с использованием атрибута событий onclick при нажатии на кнопку (HTML элемент) вызываем функцию myFunc(), которая с использованием JavaScript метода document.querySelectorAll() выбирает все элементы с классом block и инициализируем переменную
      этим значением (объект NodeList). После этого мы проходим циклом по всем элементам этого массивоподобного объекта (объект NodeList) и устанавливаем зеленый цвет текста каждому элементу.
    </p>
  </div>
</div>

我确定问题出在这篇文章中:

accordionTitle.addEventListener('click', function () {
    slideToggle(document.querySelector('.collapse'), 400);
    accordionTitle.classList.toggle('collapsed');
});
javascript
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-11-21 23:36:55 +0000 UTC

单击下拉列表中的项目时如何更改文本?

  • 0

逻辑是这样的,当您单击列表项时,例如“Ufa”,此文本会出现在当前的位置,以及列表中的当前位置。

window.onclick = function(event) {
  if (!event.target.matches('.dropdown-toggle')) {
    let dropdownMenu = document.getElementsByClassName('dropdown-menu');

    for (let i = 0; i < dropdownMenu.length; i++) {
      let openDropdown = dropdownMenu[i];
      if (openDropdown.classList.contains('show')) {
        openDropdown.classList.remove('show');
      }
    }
  }
};

const dropdownToggle = document.querySelectorAll('.dropdown-toggle');

dropdownToggle.forEach(function(item) {
  item.onclick = function() {
    this.nextElementSibling.classList.toggle('show')
  };
});
.dropdown {
  position: relative;
  display: inline-block;
}
.dropdown-toggle {background: orange;}
.dropdown-menu {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  overflow: auto;
  z-index: 1;
}

.show {
  display: block;
}
<div class="dropdown">
  <div class="dropdown-toggle">Москва</div>

  <ul class="dropdown-menu">
    <li class="dropdown-item">Санкт-Петербург</li>
    <li class="dropdown-item">Уфа</li>
  </ul>
</div>

javascript
  • 2 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-11-21 19:06:07 +0000 UTC

页面上两个下拉列表冲突,告诉我错误在哪里?

  • 0

我写了一个下拉列表的JS代码,一个很好用,但是第二个不行,告诉我哪里出错了?由于页面上会有很多下拉列表,但我希望它们彼此独立工作,同时 JS 代码不会膨胀。

/*Функция добавляет/удаляет класс для показа списка.*/
function myFunction() {
    document.querySelector('.dropdown-content').classList.toggle('show');
}


window.onclick = function (event) {
    if (!event.target.matches('.dropbtn')) {
        let dropdowns = document.getElementsByClassName('dropdown-content');

        for (let i = 0; i < dropdowns.length; i++) {
            let openDropdown = dropdowns[i];
            if (openDropdown.classList.contains('show')) {
                openDropdown.classList.remove('show');
            }
        }
    }
};

/* Выбираю конкретный селектор */
document.querySelector('.dropbtn').addEventListener('click', myFunction);
.dropbtn {
  background-color: #3498db;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
}

.show {
  display: block;
}

body {
display: flex;
justify-content: space-around;
}
<div class="dropdown">
  <button class="dropbtn">Home</button>

  <div class="dropdown-content">
    <div>blog</div>
    <div>About</div>
    <div>Contact</div>
  </div>
</div>



<div class="dropdown">
  <button class="dropbtn">Home</button>

  <div class="dropdown-content">
    <div>blog</div>
    <div>About</div>
    <div>Contact</div>
  </div>
</div>

只需要纯 JavaScript 的帮助!

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-10-14 17:47:54 +0000 UTC

如果点击添加,如何记录添加的课程数量?

  • 0

告诉我,在使用参数计数类单击跨度时,我能够添加一个数字,但没有办法减少它。

在这里它补充说:

    var a = parameterCount.text();   
    parameterCount.html(1+parseInt(a));

但它减少了(但不能正常工作):

    var b = parameterCount.text();   
    parameterCount.html(1-parseInt(b));

整个脚本:

var parameterCount = $('.parameter-count');

$(function() {

  $(".item").click(function() {

    $(this).toggleClass("active");
    var text = "&nbsp;<span>" + $(this).text() + "</span>,";

    $("#memory").html($("#memory").html().replace(text, ""));
    if ($(this).hasClass("active")) {
      $("#memory").append(text);
    }

    if ($(".item.active").length) {
      $(".double-dots").show();


      var a = parameterCount.text();
      parameterCount.html(1 + parseInt(a));
    } else {
      $(".double-dots").hide();


      var b = parameterCount.text();
      parameterCount.html(1 - parseInt(b));
    }
  });

});
.active {
  color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="title">Параметры (<span class="parameter-count">0</span>)</div>

<div class="filter-select">
  <div id="memory">
    <span>Встроенная память</span>
    <span class="double-dots" style="display: none">:</span>
  </div>

  <ul class="filter">
    <li class="item">256 GB</li>
    <li class="item">128 GB</li>
    <li class="item">64 GB</li>
    <li class="item">16 GB</li>
  </ul>
</div>

jquery
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-10-10 00:04:20 +0000 UTC

重新单击创建元素后如何删除元素?

  • 1

我写了一个条件,文本被添加到想要的父元素,但是当你再次点击元素时,它并没有被删除:

这是一个示例代码:

$(".item").click(function() {
  
  var text = $(this).text();

  $(this).toggleClass("active");

  $("#memory").append("&nbsp;<span>" + text + "</span>,");

  if ($(".item.active").length > 0) {
    $(".double-dots").show();
  } else {
    $(".double-dots").hide();
  }
});
.active {
  color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="filter-select">
  <div id="memory">
    <span>Встроенная память</span>
    <span class="double-dots" style="display: none">:</span>
  </div>

  <ul class="filter">
    <li class="item">256 GB</li>
    <li class="item">128 GB</li>
    <li class="item">64 GB</li>
    <li class="item">16 GB</li>
  </ul>
</div>

jquery
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-02-13 20:47:06 +0000 UTC

如何为安卓创建图标?

  • 3

我生成了图标,但在不同的手机上它们的显示方式不同:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

问题出现了: 1. 我是否应该将图标制作成方形,并且它们的发射器会按照应有的方式切割自己: 2. 或者为流行的发射器制作图标,自己修圆边缘,将它们重命名为圆形、圆形、方形。3. 以什么格式PNG、JPG、透明背景或填充?

我会很高兴任何信息。

android
  • 1 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-01-14 19:55:27 +0000 UTC

如何按时间为预加载器设定条件?

  • 0

告诉我如何正确设置预加载器的条件:如果页面在10秒内没有完全加载,那么不显示预加载器?

setTimeout(function () {
    fadePreLoader(preLoader);
}, 10000);


window.onload = function () {
    fadePreLoader(preLoader);
};

如何结合这两个代码,使函数不会被执行fadePreLoader(preLoader);两次?

var preLoader = document.getElementById("before-load");

function fadePreLoader(el) {
    el.style.opacity = 1;
    var interPreLoader = setInterval(function () {
        el.style.opacity = el.style.opacity - 0.05;
        if (el.style.opacity <= 0.05) {
            clearInterval(interPreLoader);
            preLoader.style.display = "none";
        }
    }, 16);
}


setTimeout(function () {
    fadePreLoader(preLoader);
}, 10000);


window.onload = function () {
    fadePreLoader(preLoader);
};
#before-load {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background: #ec1c24;
  z-index: 1501;
  border: 5px solid #ec1c24;
  color:#fff;
}

.before-load__logo,
.before-load__preloader {
  position: absolute;
  margin: auto;
  left: 0;
  right: 0;
  bottom: 0;
}

.before-load__logo {
  width: 200px;
  top: 75px;
}

.before-load__preloader {
  width: 64px;
  height: 64px;
  top: 0;
}
<div id="before-load">
  Внимание, работает прелоадер.
</div>

Тело сайта

javascript
  • 2 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-08-13 17:11:28 +0000 UTC

单击孩子时如何从其他父母中删除班级?

  • 0

当你再次点击时,活动类 .menu-catalog__open 没有被删除,告诉我解决方案?

  1. 当单击具有 .menu-catalog__link 类的子元素时,具有.menu-catalog__item类的该元素的父元素将添加活动类.menu-catalog__open

  2. 单击具有 .menu-catalog__link 类的其他子元素时,将删除来自具有.menu -catalog__item 类的其他父项的活动.menu-catalog__open类

/*
1. При клике на дочерний элемент с классом .menu-catalog__link родителю этого элемента с классом .menu-catalog__item добавляется активный класс .menu-catalog__open
2. При клике на другие дочерние элементы с классом .menu-catalog__link удаляется активный класс .menu-catalog__open у других родителей с классом .menu-catalog__item.
*/

var menuCatalogOpen = 'menu-catalog__open';

$('.menu-catalog__link').on('click', function() {
  $('.menu-catalog__item').removeClass(menuCatalogOpen);
  $(this).parent().toggleClass(menuCatalogOpen);
});
.menu-catalog__open {
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="menu-catalog">
  <li class="menu-catalog__item">
    <div class="menu-catalog__link">Первый пункт</div>
  </li>
  <li class="menu-catalog__item">
    <div class="menu-catalog__link">Второй пункт</div>
  </li>
  <li class="menu-catalog__item">
    <div class="menu-catalog__link">Третий пункт</div>
  </li>
  <li class="menu-catalog__item">
    <div class="menu-catalog__link">Четвертый пункт</div>
  </li>
</ul>

再次点击时 .menu-catalog__open 类不会被删除!

javascript
  • 2 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-08-31 14:26:30 +0000 UTC

填充数据时如何将类添加到输入?

  • -1

任务是,如果用户填写该字段,则输入字段中的提示将位于顶部,为此,如果输入的值已填写,我需要添加一个类:

.contacts-form {
  padding: 32px 54px;
  background: #fff;
  box-shadow: 0 5px 18px 0 rgba(0, 0, 0, 0.05);
}

.ui-group {
  position: relative;
}

.ui-field {
  width: 100%;
  height: 50px;
  padding: 12px 0 0;
  border: 0 solid #E1F5F2;
  border: 0 solid #6BC5D2;
  border-bottom-width: 1px;
  background-color: #fff;
  font-size: 15px;
  color: #390050;
  display: block;
  transition: all .3s ease;
}

.ui-field:focus+.ui-placeholder {
  margin-right: 0;
  top: 0;
  left: 0;
  font-size: 13px;
}

.ui-placeholder {
  margin-right: 4px;
  top: 23px;
  left: 0;
  font-size: 14px;
  color: #9B8EA0;
  position: absolute;
  transition: top .3s ease;
}

.ui-placeholder::before {
  content: '*';
  display: inline;
  transition: all .3s ease;
}
<form action="#" class="contacts-form">
  <div class="ui-group">
    <input type="text" class="ui-field" id="name" value="">
    <label for="name" class="ui-placeholder">Имя</label>
  </div>
</form>

javascript
  • 2 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-07-05 02:06:11 +0000 UTC

如何制作无限上下动画?

  • 2

我只能通过不断移动滑块来实现无穷大,但我需要先到最后,然后再从最后到开始:

body {
width: 100%;
height: 100%;
background-color: #333;
}

.header-down {
  width: 1px;
  height: 65px;
  top: 50%;
  left: 50%;
  margin-left: -1px;
  z-index: 92;
  background-color: #fff;
  position: absolute;
  overflow: hidden;
}

.header-down::after {
  width: 100%;
  height: 100%;
  position: absolute;
  content: '';
  background-color: #3cc9e5;
  transform: translate3d(0, - 100%, 0);
  animation: spin .7s infinite linear;
}

@keyframes spin {
  to {
    transform: translate3d(0, 100%, 0);
  }
}
<div class="header-down">
</div>

css
  • 2 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-06-28 00:39:01 +0000 UTC

通过输入框提示帮助解决问题

  • 0

输入中的工具提示与焦点一起工作,但是,当我输入数据并且输入失去焦点时,工具提示会覆盖输入的数据。如何解决这个问题,告诉我或展示。

.form-group {
  margin-bottom: 20px;
  position: relative;
  display: block;
}

.form-control {
  width: 100%;
  height: 80px;
  padding: 0 32px 2px;
  border: 1px solid #e5e5e5;
  font-size: 16px;
  display: block;
  border-radius: 3px;
  background-color: #ffffff;
  color: #505b6a;
  transition: all .3s ease;
  box-sizing: border-box;
}

.ui-input-placeholder {
  position: absolute;
  z-index: 5;
  top: 32px;
  left: 46px;
  color: #b0aaaa;
  font-size: 16px;
  pointer-events: none;
  transition: top 0.3s ease;
}

.ui-input-placeholder::before {
  content: '*';
  position: absolute;
  top: -6px;
  left: -15px;
  color: #df4a4a;
  line-height: 1;
  font-size: 23px;
  z-index: 10;
}

.form-control {
  width: 100%;
  height: 80px;
  padding: 0 32px 2px;
  border: 1px solid #e5e5e5;
  font-size: 16px;
  display: block;
  border-radius: 3px;
  background-color: #ffffff;
  color: #505b6a;
  transition: all .3s ease;
  font-weight: normal;
  font-family: "Roboto-Light", sans-serif;
}

.form-control:focus {
  padding-top: 30px;
}

.form-control:focus+.ui-input-placeholder {
  top: 19px;
}

.required-field .form-control {
  padding-left: 45px;
  z-index: 5;
  position: relative;
  background-color: transparent;
}

.required-field .form-control:focus+.ui-input-placeholder::before {
  top: -5px;
}
<label class="form-group required-field">
    <input type="text" class="form-control">
    <span class="ui-input-placeholder">Регион использования</span>
</label>

javascript
  • 2 个回答
  • 10 Views
Martin Hope
Aleksandr
Asked: 2020-06-23 16:50:00 +0000 UTC

如何从选择中提取标题属性并将其放入跨度中?

  • 1
  1. 读取select的title属性,放到一个变量中。
  2. 在同一选择下创建具有跨度的标记,并将值分配给从选择标题中获取的变量。

        <select class="form-control" title="Выберите Марку">
            <optgroup label="">
                <option value="AK">Hundai</option>
                <option value="HI">Hundai</option>
                <option value="CA">Hundai</option>
            </optgroup>
        </select>
    

我期望的结果:

$('<span/>', {class: 'select-title', text: $('select').attr('title')}).insertAfter('select');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control" title="Выберите Марку">
    <optgroup label="">
        <option value="AK">Hundai</option>
        <option value="HI">Hundai</option>
        <option value="CA">Hundai</option>
    </optgroup>
</select>

<select class="form-control" title="Выберите Марку2">
    <optgroup label="">
        <option value="AK">Hundai</option>
        <option value="HI">Hundai</option>
        <option value="CA">Hundai</option>
    </optgroup>
</select>

<select class="form-control" title="Выберите Марку3">
    <optgroup label="">
        <option value="AK">Hundai</option>
        <option value="HI">Hundai</option>
        <option value="CA">Hundai</option>
    </optgroup>
</select>

<select class="form-control" title="Выберите Марку4">
    <optgroup label="">
        <option value="AK">Hundai</option>
        <option value="HI">Hundai</option>
        <option value="CA">Hundai</option>
    </optgroup>
</select>

javascript
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5