один обработчик для всех элементов определенного класса
Ребята, помогите!
Стоит задача сделать конструктор галерей. Работает это так: 1. на страницу загружаются изображения <img> 2. на каждом изображении можно курсором выделить квадратную область, которая в последствии станет превью. 3. после выделения всех областей жмешь ОК и едешь дальше обработчик который все это проделывает с одним изображением я сделал, но изображений много, они будут подгружаться динамический, а он у меня пока подвязывается следующим образом:
var image = document.getElementById('image1');
image.onmousedown = function() {
//обработчик
}
можно ли как-то заставить его работать для всех <img> заданного класса? <img class="imageCut" src="IMG_001.jpg" /><br /> <img class="imageCut" src="IMG_002.jpg" /><br /> <img class="imageCut" src="IMG_003.jpg" /><br /> ..... в идеале хочется сделать так как подвязываются некоторые WYSIWYG-редакторы: инициализируешь его в начале, а потом просто для всех <textarea> задаешь класс class="editor1" и они заменяются редактором. Буду благодарен за советы, короткие примеры и вообще подскажите в какую сторону копать? И можно ли в этом случае обойтись без jQuery? |
Pedro Garciya Lopez,
http://learn.javascript.ru/event-delegation |
Цитата:
В вашем случае либо делегировать обработку события родительскому элементу, либо можно еще так (если элементов не тысячи):
var handler = function() {
//обработчик
};
var images = document.querySelectorAll('.imageCut');
for (var i = 0, image; image = images[i]; i++)
image.onmousedown = handler;
|
возможно вы меня не поняли, или скорее всего я не правильно объяснил.
вот так например инициализируется редактор Elrte:
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/themes/smoothness/jquery-ui.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js"></script>
<link rel="stylesheet" type="text/css" href="tools/editor/css/elrte.min.css">
<script src="tools/editor/js/elrte.min.js"></script>
<script src="tools/editor/js/i18n/elrte.ru.js"></script>
<script>
$().ready(function() {
$('.editor').elrte({
cssClass : 'el-rte',
lang : 'ru',
width : 800,
height : 450,
toolbar : 'maxi'
});
});
</script>
потом все <textarea> классом editor заменяются на Elrte <textarea class="editor"> здесь правда jQuery |
Цитата:
|
Цитата:
|
воот, это как раз то что нужно в моем случае. спасибо за подсказку
|
| Часовой пояс GMT +3, время: 06:08. |