2015-06-02 3 views
0

Очень короткое резюме «почему» мне это нужно. Я использую PlUpload, который позволяет загружать файлы с помощью Ajax, предоставляя вам обратно события, такие как процент, завершение и т. Д. Вы создаете экземпляр объекта, а затем вызываете «init» (сообщая ему, на каком идентификаторе «ссылка на»), а затем добавьте все слушателей событий. Поскольку страница, которая нуждается в объекте, создается во время выполнения и не может включать JS, я просто создал DIV (который я сделаю невидимым, когда все будет работать ...) на главной странице со ссылками внутри.document.getElementById ('myElement'). Click(); не работает по желанию

Это ссылка:

<a id="browse" href="javascript:;">Browse</a> 

Если я нажимаю непосредственно, она работает.

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

<img onclick="document.getElementById('browse').click(); return false;" src="whatever.jpg"> 

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

Пожалуйста, обратите внимание, что если изменить ссылку так:

<a id="browse" onclick="alert('Hello'); return false;" href="javascript:;">Browse</a> 

Тогда я могу увидеть «Hello» всплывающее окно при нажатии на изображение.

Я новичок в JS/HTML, поэтому, если это очевидная проблема ... Извините;) Или, если вы знаете о лучшем решении общей проблемы (без jQuery, пожалуйста), я был бы признателен вам:)

Это INIT часть PlUpload:

var uploader = new plupload.Uploader({ 
    browse_button: 'browse', 
    url: 'newupload.php', 
}); 

uploader.init(); 
+0

Нам нужно посмотреть, как добавляются слушатели событий. Просьба указать [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). – Oriol

+0

Я добавил запрошенный «init», но, как сказал, я использую PlUpload. Я понятия не имею, как он делает то, что он делает ... Как сказано, он работает, если я нажимаю ссылку напрямую. – ZioBit

+0

Когда вы нажимаете эту кнопку, вы на самом деле не нажимаете эту кнопку. На нем есть другие html-элементы. осмотрите его. – epascarello

ответ

0

Вставить элемент внутри элемента, и вы можете нажать на изображение, которое будет делать тот же самый эффект.

<a href="..."><img src="..."></img></a> 
+0

К сожалению, я не могу делать то, что вы говорите.Если я поставлю img внутри элемента «», он не появится в нужном месте на странице. – ZioBit

0

Вместо использования метода нажмите() попробуйте использовать это:

$('#browse').trigger("click"); 

это должно вызвать событие ссылки вместо прослушивания события, и если вы не хотите использовать JQuery вы можете просто сделайте это:

document.getElementById('browse').onclick(); 

Счастливое кодирование!

+0

Я пробовал версию jQuery, но это тоже не работает. Второй - это 100%, что я сейчас делаю, что вы имеете в виду? Спасибо. – ZioBit

+0

второй использует функцию «onclick», ваш код вызывает «щелчок» – Enrique

+0

Извините, не видел. Пробовал, и он не вызывает событие :( – ZioBit