Slyweb
На разработку сайта! Скидки 50%!

Как запустить callback функцию?

Вы можете задавать любые вопросы по jQuery.

Как запустить callback функцию?

Сообщение Гость » 26 дек 2009, 21:32

Всем привет!

Столкнулся с такой штукой....
Имеется атрибут callback у тега HTML, к примеру так:

Код: Выделить всё
<div callback="someFunction" id="myDiv"></div>


Пытаюсь запустить функцию указанную в этом атрибуте:

Код: Выделить всё
function someFunction()
{
      //do something....
}

$("#myDiv").bind("click", function()
{
     var callbackFunc = $(this).attr("callback");
     callbackFunc.call($(this)); //выдает ошибку -- callbackFunc.call is not a function
} );


В переменную callbackFunc приходит значение атрибута callback (имя нужной функции), но это значение имеет тип String.
Само собой и происходит ошибка, так как я получил всего лишь литеральное значение вычесленного имени функции а не ссылку на эту функцию.

Приходится запускать функцию вот так:

Код: Выделить всё
eval(callbackFunc + ".call($(this));");


Вопрос - как избежать использование eval()? Есть ли способ получить не литеральное значение при использовании attr(), а именно ссылку на функцию содержащуюся в атрибуте callback?
Последний раз поднималось Anonymous 26 дек 2009, 21:32.
Гость
 

Вернуться в Вопросы по jQuery

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron