Например:Как вызвать текстовую функцию в javascript/jquery?
<input id="#me" type="button" callme="doAction()"/>
<script>
var result = callFunction($("#me").attr('callme')); /// ?????????
</script>
Например:Как вызвать текстовую функцию в javascript/jquery?
<input id="#me" type="button" callme="doAction()"/>
<script>
var result = callFunction($("#me").attr('callme')); /// ?????????
</script>
Я думаю, что, возможно, это решение:
<script>
setTimeout($("#me").attr('callme'), 0);
</script>
Но как получить возвращаемое значение ??
Попробуйте это:
<script>
var callMe = $("#me").attr("callme");
var result = eval(callMe);
</script>
hmmmmmmmmmmmmmmmmmmmmm –
если атрибут CallME это имя (идентификатор) функции просто использовать
<input id="#me" type="button" callme="doAction"/>
(window[$("#me").attr('callme')] || function() {})();
так что вы можете избежать использования дорогостоящего Eval()
Мне это нравится, но я получаю эту ошибку: (f)(); f не является функцией? функция существует ... –
К сожалению, извините. Попробуйте это (окно [$ ("# me"). Attr ('callme')] || function() {})(); – 2010-10-11 15:03:39
Лучшим решением было бы не включать функцию в вашу разметку HTML. Почти всегда лучше отделить свою разметку от своих скриптов.
Вместо рассмотреть вопрос о добавлении его к объекту йот используя
$('#me').data('callme', function(){...});
или
$('#me').data('callme', doAction);
и назвав его помощью
$('#me').data('callme')()
или немного безопаснее
($('#me').data('callme')||jQuery.noop)()
Для получения более подробной информации о функции данных см. JQuery documentation.
Я получаю эту ошибку: (f || jQuery.noop)(); f не является функцией? функция существует ... –
'jQuery.noop()' находится в jQuery версии 1.4+ – Mottie
'jQuery.noop' может быть заменен на' function() {} ', если вам нужно , или вы можете назначить его где-то с 'jQuery.noop = function() {};' – tKe
Что делает ваш callFunction? Ожидаете ли вы передать строку? – 2010-10-11 13:05:38
Что именно вы пытаетесь достичь? – Mottie