Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   свой метод click() (https://javascript.ru/forum/dom-window/39684-svojj-metod-click.html)

zzzzzz 08.07.2013 17:29

Ruslan, вышеописанное вами я уже реализовал давно, а вот недавно отказался от jquery и переписал практически все на "чистый" js, только вот метод click() не могу свой написать, в этом и загвоздка

skrudjmakdak 08.07.2013 17:32

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

vadim5june 08.07.2013 17:35

Цитата:

Сообщение от zzzzzz
У jquery есть метод click(). Как на чистом js написать этот метод и что мне для этого нужно

Помоему и jquery нельзя этим методом кликнуть на input-file

Deff 08.07.2013 17:39

Цитата:

Сообщение от vadim5june
Помоему и jquery нельзя этим методом кликнуть на input-file

vadim5june,
Вродь onchange работает... И cмысл кликать на него ?
<style>span,input:hover{cursor:pointer}</style>
<span onclick="alert('A')" style="background:url(http://javascript.ru/forum/images/editor/insertimage.gif) no-repeat 140px center;"><input type=file style="opacity:0"></span>

vadim5june 08.07.2013 17:43

Цитата:

Сообщение от Deff
vadim5june,
Вродь onchange работает... B cмысл кликать на него ?

Я так понял что програмно кликнуть методом click хотят
$(inputFile).click()

Deff 08.07.2013 17:54

vadim5june,
Да вродь смысла особого нет, все одно - окно должно открыться - значит событие от пользователя,
типично всё это нужно для костомизации инпута

vadim5june 08.07.2013 17:59

Цитата:

Сообщение от Deff
типично всё это нужно для костомизации инпута

может я не понял что имелось ввиду
Цитата:

Сообщение от zzzzzz
При клике на ссылку fileSelect запускаю функцию а в ней document.getElementById("fileElem").click(); что с свою очередь эмитирует нажатие на input с типом file.
Все это для того чтобы скрыть некрасивую форму загрузки файлов.


Deff 08.07.2013 18:06

vadim5june,
Да все извраты, чтобы свой инпут оформить, кликнуть по нему, а тот передаст клик настоящему
Точно так же, можно упразрачнить текущий, и клик по нему , сделать видимым - якобы клика по своему, а событие клика - отслеживается идентично,

vadim5june 08.07.2013 18:07

Цитата:

Сообщение от Deff
Да все извраты, чтобы свой инпут оформить, кликнуть по нему, а тот передаст клик настоящему

понятно

zzzzzz 08.07.2013 20:51

Это не извраты это мозилла советует https://developer.mozilla.org/en-US/...b_applications см. раздел "Using hidden file input elements using the click() method"

Мне уже сказали что это не кроссбраузерно но я все же хочу покопаться в этом, хуже не будет

Ребят каждый ваш вариант правильный, но все же мне хочется научиться делать такое хоть даже не кроссбр-но, я не могу просто пройти мимо и забить, так не могу, поэтому прошу пояснить логику этого метода click() от jq и перечислить встроенные методы js которые могут понадобится, мне бы толчок, а то не знаю даже как начать


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