Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Передача параметров с сервера в функцию (https://javascript.ru/forum/events/21115-peredacha-parametrov-s-servera-v-funkciyu.html)

mikel 29.08.2011 18:39

Передача параметров с сервера в функцию
 
Подскажите, плз.
Хочу сделать штуку, аналогичную той, что есть на Аvito.
Есть ссылка, по клику на ссылке показывается адрес на карте Google Maps и маркер.
Первый вариант, который пришел на ум, примерно такой:
<a href="#" onclick="showMap(100, 'адрес', 'описание', ....);return false">Смотреть на карте</a>

Но, насколько я понимаю, это считается не лучшим тоном вешать на onclick функцию с большим кол-вом аргументов. На серьезных сайтах типа того же Авито событие к клику по элементу привязывают отдельно, через addListener, $.delegate или что-то аналогичное. Но тут интересный вопрос, как в функцию передаются параметры с сервера, они ведь каждый раз разные.
Хотелось бы узнать, как ПРИНЯТО делать такие вещи, а не как их делать в принципе.

B@rmaley.e><e 29.08.2011 19:10

События назначать через addEventListener ($.bind или ему подобные в случае jQuery), если ссылок много и они могут произвольно добавляться / удаляться, то $.delegate / $.live.
Данные можно передавать либо отдельным массивом (что лично мне не кажется хорошей идеей), либо записывать в какой-нибудь неиспользуемый атрибут (у Вас, например, href без дела стоит). Т.е. отдавать с сервера что-нибудь в виде
<a href="#[1,2,3,4]" class="someClassName">Смотреть на карте</a>
А потом в JS что-то в духе
$('a.someClassName').click(function(){
    var data = JSON.parse(this.href.slice(1));
    // operating with data
})
В href после # можно хранить данные в JSON.

mikel 29.08.2011 21:18

B@rmaley.e><e,
Спасибо, наверное, попробую вариант с атрибутом


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