添加到JQuery脚本运行时

时间:2013-01-02 23:53:44

标签: jquery

我正在开发一个项目,在这个项目中能够解析一些文本非常有用。一个数据库到jQuery。

这一行就是一个例子:

$(container).show("drop", { direction: "bottom", distance: 300 }, 800);

当我将其硬编码到我的文件中时,这很有用 - 但我希望能够存储的是:

.show("drop", { direction: "bottom", distance: 300 }, 800);

例如一个数据库,然后在页面呈现时检索它并在我的jQuery代码中使用它。

我目前正在将存储的jQuery渲染到隐藏字段中,但每当我尝试组合这些值时:

$(container) + $("#hfJquery");

我得到的只是一个文本字符串 - 这是有道理的。所以问题是 - 有没有办法以某种方式将代码附加到jquery代码块,以便隐藏字段中的纯文本将被视为jQuery代码而不是文本?

2 个答案:

答案 0 :(得分:0)

我真的没有看到做某事的重点。但请看一下eval()

http://jsfiddle.net/yP9ZL/1/

eval("$('#containerID')" + $("#hfJquery").val());

答案 1 :(得分:0)

您可以将数据存储为JSON。这只会占用DB中的一个字段。

然后输出到javascript对象变量或将其存储在标记的data-属性中:

var data={
  "selector": "#Div",
  "animMethod": "show",
  "effect": "drop",
  "options": { "direction": "bottom", "distance": 300 },
  "duration": 800  

}

function runAnimation(data){
   $( data.selector)[ data.animMethod] ( data.effect, data.options, data.duration);

}
runAnimation(data);

JSON也可以直接添加到data-属性

中的元素
<div class="run_animation" data-animData="{animMethod: 'show'.....,  duration: 800 }">

然后从元素中检索:

$('.run_animation').each(function(){
  /* retrieve data object from markup*/
  var data=$(this).data('animData')
  $(this)[ data.animMethod] ( data.effect, data.options, data.duration);    
})