Frage

ist das möglich?

<div id="anything">I will change</div>
<div id="id" jq="$('#anything').css({background: 'red'})"></div>

var x = '$('#id').attr('jq')';
jQuery.call(x);

Im Grunde würde Ich mag ein Attribut jq auf jeden Tag verwenden, wie ein onclick zu handeln auf html, dass Anrufe der JavaScript-Anweisungen.

btw jQuery.call () ist zu Demonstrationszwecken es funktioniert nicht ...

War es hilfreich?

Lösung

Sie würden eval() verwenden, aber was Sie tun, scheint wie eine wirklich schlechte Idee:

var x = $('#id').attr('jq');
eval(x);

Der Grund, dies schlecht ist, ist, dass Sie nicht Funktion von Struktur zu trennen. HTML ist gemeint Struktur zu beschreiben, nicht die Interaktivität und Funktion.

JavaScript ist gemeint, dass die Interaktion und Verbesserung zu schaffen, aber nicht zu strukturieren. Unter Verwendung des jQuery Inline wie das ist ein Verstoß gegen diese Trennung. Einfach zum Nachdenken ...

Andere Tipps

Sie können neue Funktion verwenden MDN

Körper:

<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);

give it a try:

http://jsfiddle.net/msLsy/

Hope, es hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top