Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вызов не статической функции из события описанного в html (https://javascript.ru/forum/events/12035-vyzov-ne-staticheskojj-funkcii-iz-sobytiya-opisannogo-v-html.html)

Игорь Есаул 27.09.2010 18:04

Вызов не статической функции из события описанного в html
 
Подскажите пожалуйста, ситуация такая: яваскрипт генерирует большую страницу со множеством ссылок, назначать каждой ссылке обработку onclick отыскивая элемент по id довольно долго, по этому хочу задать все вызовы функции в html т.е. <a onclick=”user.click( param );”…, проблема в том что userов много и функция должна вызываться для конкретного экземпляра класса, придумал ниже след. это изврат? есть нормальный способ?

var User = function(){
var clickFunction = function(){…...};
User.count++;
User.clickFunctionArray[User.count] = clickFunction;
document.write(‘<a onclick=”User.clickFunctionArray [’+ User.count +’]();”……
}
var user = new User();

большое спасибо.

monolithed 27.09.2010 18:41

Да уж, вы точно извращенец))
Цитата:

назначать каждой ссылке обработку onclick отыскивая элемент по id довольно долго
Совсем несложно:
<script type="text/javascript">
window.onload = function(){
	var array = document.getElementsByTagName('a');
	for(var i=0; i<array.length; i++) {
		array[i].id = 'someid_'+i;
		(function(i) {
			array[i].onclick = function() {
				alert(this.id);
			}
		})(i);
	}
};
</script>

<a href="#">1</a>
<a href="#">2</a>

Skipp 28.09.2010 09:54

А можно спросить, о конечном результате, что-то мне подсказывает что эта задача накручена.


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