Я новичок в jQuery (1,5 месяца) и обнаружил, что развиваю привычку PHP + jQuery, которая мне не особенно нравится.Мне интересно, есть ли у кого-нибудь предложения, чтобы сделать вещи более элегантными.Рассмотрим следующий HTML-код, который я сгенерировал, выполнив простой запрос SQL и повторив его с помощью PHP:
<div id='boat_1' class='boat speedboat'></div>
<div id='boat_2' class='boat dory'></div>
<div id='car_1' class='car racecar'></div>
<div id='car_2' class='car racecar'></div>
Как видите, я выбрал id
соглашение об именах, следующее {type}_{id}
,Теперь, в jQuery, предположим, что я хочу привязать обработчик кликов к этим машинам делениям.Вспоминая, что они динамические и их может быть любое количество, я бы выполнил:
$(".car").bind('click', function(){
//do something
});
Но, как правило, //do something
хотел бы знать, на какой машине сработало событие щелчка.Кроме того, //do something
, вероятно, потребуется разделить тип (лодка или автомобиль) и id
для выполнения операции POST и записи в базу данных ... (например)
What I 'Сейчас я пытаюсь найти идентификатор (и другую уникальную информацию, которая мне нужна), но для меня это пахнет:
$(".car").bind(function(){
var id = $(this).attr("id").replace("car_", "");
});
Можно вместо этого предложить использовать атрибут класса, потому что вы этого не делаетенадо беспокоиться об уникальности.Но поскольку имена классов не являются единичными (как я показал, их может быть больше одного), я не рассматриваю это как возможное решение.
Поскольку идентификаторы должны быть уникальными во всем документе,это решение, которое я выбрал.Я знаю, что getElementById () сломался бы, если бы стали возможными несколько идентификаторов с одним и тем же именем, но иногда я спрашиваю себя, будет ли полезно, если бы идентификаторы не были уникальными, если у них разные родители.
Какты делаешь это?
Должен ли я использовать HTML5 data-*
?
Спасибо!