stringa di jQuery per funzione di conversione
Domanda
è possibile?
<div id="anything">I will change</div>
<div id="id" jq="$('#anything').css({background: 'red'})"></div>
var x = '$('#id').attr('jq')';
jQuery.call(x);
In sostanza vorrei usare un jq
attributo qualsiasi tag di agire come un onclick
farebbe su HTML che chiama le istruzioni JavaScript.
btw jQuery.call () è a scopo dimostrativo non funziona ...
Soluzione
Si potrebbe utilizzare eval()
ma cosa si sta facendo sembra una pessima idea:
var x = $('#id').attr('jq');
eval(x);
Il motivo di questo è male, è che non state separando funzione dalla struttura. HTML è pensato per descrivere la struttura, non l'interattività e la funzione.
ha lo scopo di fornire JavaScript che l'interazione e la valorizzazione, ma non la struttura. Utilizzando la linea jQuery del genere è una violazione di tale separazione. Proprio cibo per la mente ...
Altri suggerimenti
è possibile utilizzare le nuove MDN
del 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);
fare un tentativo:
Speranza che aiuta!