Question

est-ce possible?

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

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

Fondamentalement, je voudrais utiliser un jq d'attribut sur une balise pour agir comme un onclick serait en html qui appelle les déclarations javascript.

BTW jQuery.call () est à des fins de démonstration, il ne fonctionne pas ...

Était-ce utile?

La solution

Vous utilisez eval() mais ce que vous faites semble être une très mauvaise idée:

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

La raison pour cela est mauvais, est que vous n'êtes pas fonction de séparation de la structure. HTML est destiné à décrire la structure, et non l'interactivité et la fonction.

JavaScript est destiné à fournir que l'interaction et la mise en valeur, mais pas la structure. En utilisant la ligne jQuery comme qui est une violation de cette séparation. Juste la nourriture pour la pensée ...

Autres conseils

vous pouvez utiliser la nouvelle fonction MDN

corps:

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

essayer:

http://jsfiddle.net/msLsy/

it helps!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top