2015-12-03 2 views
0

Использование dot.js Я добавляю кнопку на определенную веб-страницу, которая при щелчке должна добавить текст в текстовое поле, а затем вызвать еще одну кнопку, которую нужно щелкнуть. Я имитировать, добавив обработчик щелчка к моей кнопке, которая имеет следующий код:Запуск кнопки в jQuery не работает

var button = $('.some-class').find('button')[0]; 
console.log(button); // element I expect 
button.click(); 

Однако, это не работает, и я не знаю, почему. Если вместо .click() я выполняю .remove(), кнопка удаляется со страницы. Если я использую консоль для выполнения того же кода, кнопка будет нажата. Это говорит мне, что у меня есть правильный элемент, но что-то не так с событием click().

Может кто-нибудь объяснить, почему это не работает ни в Safari, ни в Chrome? Я пробовал много разных вещей, но я новичок в jQuery, поэтому мне, вероятно, не хватает некоторых деталей в том, как это работает.

+0

Где 'click' событие? – Arg0n

+0

@ Arg0n Не знаете, какое событие 'click' вы имеете в виду? –

+0

Событие 'click' для' кнопки'. А также, как вы привязываете события к кнопкам. – Arg0n

ответ

1

Мы пошли в нижней части этого в чате. Вероятно, причиной этой проблемы был другой обработчик событий, прикрепленный к (возможно) телу, который расстегнул щелчок.

Таким образом, решение было остановить event саморазмножения:

event.stopPropagation(); 
+0

Да, ставить это как первую строку обработчика событий сделал трюк –

0

При назначении обработчика событий нажмите на кнопку, вы должны использовать JQuery on Это должно гарантировать, что каждый раз, когда новая кнопка с добавлением с таким же переключателем (как в том, когда событие было назначено), событие обрабатывается, будет назначена на эту кнопку

Некоторые примеры here

+0

Я читал об этом, но моя проблема заключается не в том, что обработчик события не вызывается. Если я использую 'remove()' вместо 'click(), кнопка удаляется, что говорит мне, что обработчик события вызывается как ожидалось. –

+0

@ScottBerrevoets удалить кнопку только удаляет элемент dom для этого события, не нужно связывать. Но для привязки события к работе, нормальный элемент должен присутствовать первым. В вашем случае вы добавляете кнопку «на лету», поэтому вам нужно использовать jquery. – gurvinder372

0

проблема заключается функция мыши() от JQuery и вы пытаетесь стрелять функцию щелчка от объекта DOM.

Попробуйте

$(button).click(); 

Вот звенеть. http://plnkr.co/edit/2pcgVt

+0

Спасибо, но, к сожалению, это не сработало ни –

0

Вы можете использовать следующее заявление.

var button = $ ('. Some-class'). Find ('button') [0] .trigger ('click');

+0

Нет, не работает –

Смежные вопросы