Передача параметров с сервера в функцию
Подскажите, плз.
Хочу сделать штуку, аналогичную той, что есть на Аvito. Есть ссылка, по клику на ссылке показывается адрес на карте Google Maps и маркер. Первый вариант, который пришел на ум, примерно такой: <a href="#" onclick="showMap(100, 'адрес', 'описание', ....);return false">Смотреть на карте</a> Но, насколько я понимаю, это считается не лучшим тоном вешать на onclick функцию с большим кол-вом аргументов. На серьезных сайтах типа того же Авито событие к клику по элементу привязывают отдельно, через addListener, $.delegate или что-то аналогичное. Но тут интересный вопрос, как в функцию передаются параметры с сервера, они ведь каждый раз разные. Хотелось бы узнать, как ПРИНЯТО делать такие вещи, а не как их делать в принципе. |
События назначать через 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. |
B@rmaley.e><e,
Спасибо, наверное, попробую вариант с атрибутом |
Часовой пояс GMT +3, время: 05:19. |