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 ...

È stato utile?

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:

http://jsfiddle.net/msLsy/

Speranza che aiuta!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top