Как вызвать текстовую функцию в javascript / jquery? - PullRequest
0 голосов
/ 11 октября 2010

Например:

<input id="#me" type="button" callme="doAction()"/>

<script>
 var result = callFunction( $("#me").attr('callme') );       /// ?????????
</script>

Ответы [ 4 ]

2 голосов
/ 11 октября 2010

Попробуйте это:

<script>
    var callMe = $("#me").attr("callme");
    var result = eval(callMe);
</script>
1 голос
/ 11 октября 2010

Лучшим решением было бы не включать функцию в разметку HTML. Почти всегда лучше отделить разметку от сценариев.

Вместо этого рассмотрите возможность добавления его к вашему объекту dom, используя

$('#me').data('callme', function(){...});

или

$('#me').data('callme', doAction);

и вызов его с помощью

$('#me').data('callme')()

или немного безопаснее

($('#me').data('callme')||jQuery.noop)()

См. Документацию jQuery для более подробной информации о функции данных.

1 голос
/ 11 октября 2010

, если атрибутом callme является имя (идентификатор) функции, просто используйте

<input id="#me" type="button" callme="doAction"/>



(window[$("#me").attr('callme')] || function() {})();

так что вы можете избежать использования дорогого eval ()

0 голосов
/ 11 октября 2010

Я думаю, может быть, это решение:

<script>
setTimeout( $("#me").attr('callme'), 0 );
</script>

Но как получить возвращенное значение ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...