0

我正在做一个项目,能够将一些文本从例如数据库解析到 jQuery 将非常有用。

一个例子是这一行:

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

当我将它硬编码到我的文件中时,这非常有用 - 但我想要做的是存储它:

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

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

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

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

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

4

2 回答 2

0

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

然后,您将输出到 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);    
})
于 2013-01-03T00:50:13.817 回答
0

我真的不明白做某事的意义。但是看看eval()

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

eval("$('#containerID')" + $("#hfJquery").val());
于 2013-01-03T00:22:32.867 回答