Я хотел бы использовать функцию click () jQuery внутри цикла for, чтобы сделать три HTML-элемента интерактивными. Я создал простой тестовый пример:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js" />
<script type="text/javascript">
$(window).load(function() {
function loadContent(){
var values = ['a','b','c'];
for (var i = 0; i < values.length; ++i) {
var id = values[i];
alert(id);
$('#' + id).click(function() {
function2(id);
});
}
}
function function2(id) {
// do some fancy stuff like...
alert(id);
}
loadContent();
});
</script>
</head>
<body>
<div id="map">
<a id="a">a</a>
<a id="b">b</a>
<a id="c">c</a>
</map>
</body>
Как вы можете видеть, я хотел бы отобразить символ «a», если я нажму на «a» (a), покажу «b», нажимая на «b», и так далее. К сожалению, символ «с» отображается при нажатии на «а». Другие события не инициируются. Я не вижу ошибки, которую совершаю.
Я не беспокоюсь, эффективен этот код или нет. Я просто хочу знать, почему click () не работает, как ожидалось в этом контексте. Заранее спасибо за любые подсказки или решение.