Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Копирование событий другому элменту. (https://javascript.ru/forum/events/32426-kopirovanie-sobytijj-drugomu-ehlmentu.html)

Kotakota 16.10.2012 08:56

Копирование событий другому элменту.
 
Привет.
Есть элемент, допустим INPUT:
<input id="inp" type="text" />

На него вешается событие (onclick) с помощью jQuery:
form.on('click',function(e){
// ....
})

Теперь динамически создаю элемент:
input = document.createElement("input");

Как можно без jQuery повесить на него такое же событие, что и на инпуте с id="inp"?
В jQuery есть удобный "clone", а что можно сделать, что бы это работало с простым javascript и особенно в IE.

Kotakota 16.10.2012 09:05

Еще хотел добавить, что сейчас на элементе, с которого нужно скопировать событие висит следующее:
password.complexify(function(valid, complexity){
})

password - это input c type="password"
Как это можно скопировать в новый созданный input?

cyber 16.10.2012 09:32

а вы не пробывали функцию которая обрабатывает событие выносить отдельно?

function EventListener () {


}

form.on("click", EventListener)
elem.on("click", EventListener)

Kotakota 16.10.2012 09:50

cyber, спасибо за совет.
Я вешаю на свой элемент модуль jQuery, который расширяет стандартный набор функций jQuery:
$.fn.extend({
		complexify: function(options, callback) {
}

Пробовал, что то типа:
input.complexify = $.complexify(function(valid, complexity){
								  
								   })

Но так тоже не вызывается.

bes 16.10.2012 10:03

live()
PS: зачем без jq, если всё равно использовать jq

Kotakota 16.10.2012 10:56

Попробовал
intput.on('complexify',({minimumChars:8,strengthScaleFactor:0.7}, function(valid, complexity){
})

Пишет, что предполагается наличие объекта.

Kotakota 16.10.2012 10:58

Видимо придется забить на IE.

cyber 16.10.2012 15:31

конечно я не очень разбераюсь в jquery
но что это за строчка маразма
({minimumChars:8,strengthScaleFactor:0.7}, function(valid, complexity){
}

intput.on('complexify', function(){
$.complexify({minimumChars:8,strengthScaleFactor:0 .7},function() {})
})

Kotakota 16.10.2012 16:47

cyber, да эта строчка - истинный маразм.
Ваш вариант обязательно попробую.
И возник еще вопрос по ходу дела.
Допустим, я динамически создал элемент:
input = document.createElement("input");

можно ли к объекту "input" прицепить событие:
intput.on('complexify', function(){
$.complexify({minimumChars:8,strengthScaleFactor:0 .7},function() {})
})

Или "input" должен обязательно быть объектом jQuery?

cyber 16.10.2012 17:01

Цитата:

Сообщение от Kotakota (Сообщение 210561)
Допустим, я динамически создал элемент:
input = document.createElement("input");

можно ли к объекту "input" прицепить событие:
intput.on('complexify', function(){
$.complexify({minimumChars:8,strengthScaleFactor:0 .7},function() {})
})

function onComplexify(){
$.complexify({minimumChars:8,strengthScaleFactor:0 .7},function() {})
}
intput.on('complexify', onComplexify);
elem.on('click',onComplexify);//к примеру

Цитата:

Сообщение от Kotakota (Сообщение 210561)
Или "input" должен обязательно быть объектом jQuery?

если вы используете jQuery то элемент должен быть обязательно обьектом Jquery


Часовой пояс GMT +3, время: 12:59.