2

这可能吗?

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

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

基本上我想jq在任何标签上使用一个属性,就像onclick在调用 javascript 语句的 html 上一样。

顺便说一句 jQuery.call() 是出于演示目的,它不起作用...

4

2 回答 2

9

你会使用eval(),但你正在做的似乎是一个非常糟糕的主意:

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

这不好的原因是您没有将功能与结构分开。HTML 旨在描述结构,而不是交互性和功能。

JavaScript 旨在提供这种交互和增强,而不是结构。像这样使用 jQuery 内联违反了这种分离。只是思想的食物...

于 2010-01-13T22:05:52.383 回答
7

你可以使用新的函数MDN

身体:

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

试试看:

http://jsfiddle.net/msLsy/

希望能帮助到你!

于 2013-04-12T18:28:13.767 回答