Существует ли onSelect событие или эквивалентно для HTML <выбор>?

Из вашего вопроса я знаю, что вы узнали из углового курса Максимилиана Шварцмюллера.

Если вы хотите добавить изображения, вам нужно поместить файл в папку assets и получить доступ из ресурсов

, например,

assets / imageName

<nav class="navbar navbar-expand-lg navbar-light bg-blue">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">
        <img src="assets/imageName" alt="logo">
      </a>
    </div>
    <div class="collapse navbar-collapse">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item">
          <a href="#" class="nav-link">Recipe</a>
        </li>
        <li class="nav-item">
          <a href="#" class="nav-link">Shopping</a>
        </li>
      </ul> 
      <ul class="navbar-nav navbar-right">
        <li class="nav-item dropdown">
          <a href="#" class="nav-link dropdown-toggle" id="navbarDropdown" role="button">
            Dropdown
          </a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
            <a class="dropdown-item" href="#">Save</a>
            <a class="dropdown-item" href="#">Fetch</a>
            <div class="dropdown-divider"></div>
            <a class="dropdown-item" href="#">Something else here</a>
          </div>
        </li>
      </ul>
    </div>
  </div>
</nav>
196
задан ReactiveRaven 24 January 2017 в 14:21
поделиться

5 ответов

Можно использовать onChange: http://www.w3schools.com/TAGS/tag_Select.asp

Скопированный от http://www.faqs.org/docs/htmltut/forms/_SELECT_onChange.html onChange определяет JavaScript работать, когда пользователь выбирает одну из опций. Это означает, что действие инициируется сразу, когда пользователь выбирает объект, не, когда "отправлять" кнопка нажимается.

-2
ответ дан vmarquez 23 November 2019 в 05:19
поделиться

Просто идея, но действительно ли возможно поместить onclick на каждый из эти <option> элементы?

<select>
  <option onclick="doSomething(this);">A</option>
  <option onclick="doSomething(this);">B</option>
  <option onclick="doSomething(this);">C</option>
</select>
<час>

Другая опция могла состоять в том, чтобы использовать onblur на выборе. Это будет стрелять в любое время пользовательские щелчки далеко от выбора. В этой точке Вы могли определить, какая опция была выбрана. Чтобы иметь это даже инициировало в корректное время, onclick опции мог размыться, поле (сделайте что-то еще активным или просто .blur () в jQuery).

7
ответ дан Darryl Hein 23 November 2019 в 05:19
поделиться

На самом деле onclick события НЕ будут стрелять, когда пользователь будет использовать клавиатуру для изменения выбора в избранном управлении. Вам, возможно, придется использовать комбинацию onChange и onClick для получения поведения, которое Вы ищете.

3
ответ дан Brandon Montgomery 23 November 2019 в 05:19
поделиться

Пожалуйста, обратите внимание, что обработчики событий не поддерживаются для тега OPTION в IE, быстро обдумав… Я придумал это решение, опробуйте его и поделитесь своим мнением:

<script>
var flag = true;
function resetIndex(selObj) {
    if(flag) selObj.selectedIndex = -1;
    flag = true;
}
function doSomething(selObj) {
    alert(selObj.value)
    flag = false;
}
</script>
<select onchange="doSomething(this)" onclick="resetIndex(this)">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>

Что Я здесь на самом деле сбрасываю индекс выбора, чтобы событие onchange запускалось всегда, правда, вы теряете выбранный элемент при нажатии, и это может раздражать, если ваш список длинный, но это может помочь вам в какой-то мере. .

-1
ответ дан 23 November 2019 в 05:19
поделиться

Мой ответ не соответствует ответу на методологию водопада, который вы искали, потому что я думаю, что вы вам нужно будет изучить навыки программирования игр, прежде чем вы сможете спланировать, спроектировать, реализовать и протестировать его. Программирование игр ОЧЕНЬ отличается от бизнес-программирования и целой другой области само по себе.

Из-за отсутствия у вас опыта в программировании игр вам нужно будет изучить несколько концепций, прежде чем вы сможете программировать игровой период. один на iPhone. Первое, что вам нужно будет изучить, - это язык программирования OpenGL ES . По сути, это 3D API, который позволяет рисовать трехмерные примитивы. Вам все равно нужно будет использовать это, если вы кодируете 2D-игру, поскольку это быстро из-за использования графического процессора для ускорения. В Google есть несколько хороших руководств, с которых вам следует начать.

Vector Math Если вы делаете что-либо в 3D, вам нужно будет изучить математику 3D-векторов, векторы в основном используются для всего в играх, направления взгляда камеры, положения символов, скорости, обнаружения столкновений и т. Д. 2D-векторы (x, y) минус Компонент z по-прежнему необходим для программирования 2D-игр.

Обнаружение столкновений Как я узнаю, когда мой мяч попадает в стену? Ответ - обнаружение столкновений. Существует множество форм обнаружения столкновений, таких как сфера и сфера, AABB , OOBB , выпуклые оболочки, треугольная сетка и т. Д.

AI Как заставить врага атаковать моего персонажа? Искусственный интеллект - еще одна важная область, позволяющая неигровым персонажам / противникам принимать разумные решения. ИИ может быть простым, например, операторами if else, но для его эффективности обычно требуются конечные автоматы или нечеткая логика.

Поиск пути Если вы хотите переместить персонажа из точки A в точку B, избегая врагов и движущихся препятствий, вам нужно будет использовать алгоритм поиска пути. Звезда (A *) - одна из самых популярных.

График сцены Если вы хотите, чтобы на экране одновременно отображалось 10-20 + врагов, вам нужно будет закодировать граф сцены для управления динамическим отрисовкой, логикой и созданием и удалением ресурсов. Если вы не знаете, что такое полиморфизм, вам необходимо знать его, так как он очень важен для ваших игровых объектов и связан с графом сцены.

Физика Положение, скорость, ускорение, гравитация и лучи представлены с помощью векторов, и вам может потребоваться освежить свои знания математики, чтобы написать код для любой игры. Начнем со Второго закона движения Ньютона F = MA (Сила = Масса * Ускорение). Физический движок с открытым исходным кодом, такой как Bullet, ODE, Newton, Tokamak, упростит задачу, а это значит, что вам не нужно будет писать эти правила физики самостоятельно.

Objective-C ++ Это необязательно, но рекомендуется. Если вы не знаете C ++, это, по сути, смесь C ++ и Objective-C. Я предпочитаю использовать C ++ для ядра игры и программирования из-за скорости C ++ и доступности сторонних библиотек на C ++.

Звук Если вам нужен звук, вы можете просто пойти дальше и использовать простые аудиофреймы, которые предоставляет Apple, однако для трехмерного позиционного звука потребуется что-то лучшее. Я бы порекомендовал изучить FMOD SDK для iPhone. Как упоминал @Stowelly, FMOD требует лицензии на коммерческое распространение, но вы можете поискать и другие бесплатные лицензии.


Используйте игровой движок На данный момент для iPhone доступны игровые движки, которые значительно упростят вам запуск игры. В вашем случае это будет быстрее, хотя вам все равно придется изучить концепции, о которых я упоминал выше.

Вот они. некоторые известные мне игровые движки:

Unity3D Это, вероятно, самый популярный из известных мне. Unity - это игровой движок для ПК / Mac, который позволяет писать код на Mac и компилировать для Windows / Linux / Mac OS X. Я сомневаюсь, что корпус iPhone совместим напрямую с другими платформами, я бы предположил, что вы будете ограничены iPhone, если вы начали новый проект. Однако коммерческое развертывание этого движка стоит от 199 до 399 долларов.

Cocos2D Это движок для 2D-игр с открытым исходным кодом, который может быть полезен для многих игр. Стоит взглянуть. Размещено в коде Google. и при выборе / закрытии) и onkeypress может срабатывать, когда ничего не меняется ...

<script>
  function setInitial(obj){
    obj._initValue = obj.value;
  }
  function doSomething(obj){
    //if you want to verify a change took place...
    if(obj._initValue == obj.value){
      //do nothing, no actual change occurred...
      //or in your case if you want to make a minor update
      doMinorUpdate();
    } else {
      //change happened
      getNewData(obj.value);
    }
  }
</script>


<select onfocus="setInitial(this);" onclick="doSomething();" onkeypress="doSomething();">
  ...
</select>
4
ответ дан 23 November 2019 в 05:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: