Использование jQuery для запуска события html onclick

Предположение, что это - TCP (а не UDP) порт, который Вы пытаетесь использовать:

  1. На самом сервере, используйте netstat -an для проверки для наблюдения, какие порты слушают.

  2. Снаружи, просто используйте telnet host port (или telnet host:port в системах Unix), чтобы видеть, отказывают ли соединению, принимают, или тайм-ауты.

На том последнем тесте, затем в целом:

  • соединение отказалось средства, что ничто не работает на том порте
  • , принял средства, что что-то работает на том порте
  • тайм-аут средства, что брандмауэр блокирует доступ

На Windows  7 или Windows  Vista опция по умолчанию 'telnet' не распознана как внутренняя или внешняя команда, действующая программа или пакетный файл. Для решения этого просто включите его: Нажмите *, Запускаются ** → Панель управления Программы Включают или выключают Windows features . В списке прокрутите вниз и выберите Клиент Telnet и нажмите хорошо .

28
задан Simon 7 January 2011 в 11:41
поделиться

2 ответа

Позвоните непосредственно в DOM onclick ( см. Демонстрацию ):

$("#test_default")[0].onclick();

Или вообще без jQuery

document.getElementById("test_default").onclick();

Обновление:

Фактическая проблема связана с взаимодействием между jQuery .click() и встроенным кодом onclick. jQuery .click() на самом деле делает две вещи: он сначала запускает любые обработчики событий, включает в себя встроенный код onclick, , затем он вызывает проверку флажка .

Проблема возникает из-за того, что встроенный код проверяет, установлен ли флажок. Поскольку это срабатывает первым, код обнаруживает, что флажок не отмечен , и ничего не делает. Теперь, после того, как это закончено, jQuery тогда идет и проверяет флажок.

Как нам это исправить? Сначала мы проверяем флажок вручную, затем вызываем встроенный обработчик. К сожалению, мы не можем использовать jQuery .click() для вызова встроенного обработчика, потому что он снова снимет флажок (он также вызовет другие обработчики событий, связанные с jQuery, если вы добавите их в будущем, вы, вероятно, этого не захотите). ). Поэтому мы используем родной метод DOM, который я описал ранее, поскольку его единственный эффект - запуск встроенного кода.

Окончательный код:

$("#metadata_field_text_10190_default").attr("checked", true)[0].onclick();

См. Демонстрацию: http://jsfiddle.net/GtJjt/3/ . (Я включил console.log во встроенный код для демонстрации, чтобы доказать, что встроенный код работал. Удалите это, если ваш браузер не Firefox или Chrome, или он потерпит крах).

Обновите снова :

Я не видел вашего решения ранее, Саймон, спасибо, что напомнил мне о [0].click(). По сути это нативный эквивалент для jQuery .click() и работает, потому что он делает то, что я описал выше (сначала проверяя флажок, а затем вызывая встроенный код). Тем не менее, предупреждение: это также вызовет любые обработчики событий, связанные с jQuery, что может быть не тем, что вы хотите.

43
ответ дан 28 November 2019 в 03:20
поделиться

Я использовал триггер в html с событием onclick следующим образом:

$("#test_default").trigger("onclick");
2
ответ дан 28 November 2019 в 03:20
поделиться
Другие вопросы по тегам:

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