НЕ работает onclick из внешнего .js
Помогите плиз решить проблему. Раньше у меня был этот же код который находился в основном файле html в тегах <script></script> и все замечательно работало. Потом я решил что нужно этот код оформить отдельным файлом и он перестал корректно работать.
внешний.js:
window.onload = function () {
...
function CreatMenu() {
...
for (var i = 0; i < ceMenu; i++)
$('<div id="M' + i + '" class="arc" onclick="testfunct()" >' + (menuList[curMenu][1 + i]) + '</div>').appendTo('#menu').css({ 'top': (yMenu - 25) + 'px', 'left': (xMenu - 25) + 'px' });
...
}
function testfunct() {
alert();
}
...
}
Выдает ошибку Uncaught ReferenceError: testfunct is not defined onclick Пытался сделать через EventHAndler - стало только хуже, поэтому решил пытаться допилить onclick. |
Ну если уж говнокодить, то допиши там
window.testfunct = testfunct; Ну или к той стремной jQuery цепочке добавь click(testfunct) |
Помогло, но хотелось бы узнать про решение не говнокодом)
|
Помогло, да не очень(
мне нужно вызывать функцию с параметром, в итоге имею:
for (var i = 0; i < ceMenu; i++)
$('<div id="M' + i + '" class="arc" >' + (menuList[curMenu][1 + i]) + '</div>').appendTo('#menu').css({ 'top': (yMenu - 25) + 'px', 'left': (xMenu - 25) + 'px' }) .click(testfunct( menuList[curMenu][1 + i]) );
Но выполняется скрипт не правильно. Должен alert возникать по нажатию на div, а он его вызывает при создании элемента сразу столько раз сколько было создано элементов( |
А не говнокодом - это забыть про событийные атрибуты и использовать хотя бы делегирование, а не вешать обработчик на каждый элемент. И нафига window.onload, если используется jQuery, в котором есть ready.
|
P.S.:
window.testfunct = testfunct; помог как надо, но хотелось бы узнать про решение через eventHander |
Цитата:
|
Цитата:
click(function(){ testfunct(params) })
|
Цитата:
|
Не, просто по суте же это одно и тоже? Или я путаю?
|
| Часовой пояс GMT +3, время: 05:19. |