String jQuery para funcionar converter
Pergunta
Isso é possível?
<div id="anything">I will change</div>
<div id="id" jq="$('#anything').css({background: 'red'})"></div>
var x = '$('#id').attr('jq')';
jQuery.call(x);
Basicamente eu gostaria de usar um atributo jq
em qualquer tag para agir como um onclick
no HTML que chama as instruções JavaScript.
btw jquery.call () é para fins de demonstração que não funciona ...
Solução
Você usaria eval()
Mas o que você está fazendo parece uma ideia muito ruim:
var x = $('#id').attr('jq');
eval(x);
A razão pela qual isso é ruim é que você não está separando a função da estrutura. O HTML deve descrever a estrutura, não a interatividade e a função.
O JavaScript destina -se a fornecer essa interação e aprimoramento, mas não a estrutura. Usando o jQuery inline como esse é uma violação dessa separação. Apenas comida para o pensamento ...
Outras dicas
você pode usar nova função Mdn
corpo:
<div id='MyFunc' func="alert('Hello!');" >On Load raise an Alert</div>
JS:
var myFunc = myFunc || document.getElementById('MyFunc'),
hello = new Function( myFunc.getAttribute('func'));
hello.call(this);
De uma chance:
Espero que ajude!
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow