将内容推送到filter.js(jQuery过滤脚本)

时间:2013-07-26 11:22:17

标签: javascript jquery json

我正在尝试将新数据推送到名为filter.js(https://github.com/jiren/filter.js)的jQuery函数中

问题是我无法弄清楚addData的数组应该是什么样子。

以下是该脚本的演示: http://jiren.github.io/filter.js/stream.html

这是从开始提取的JSON: /examples/data/top_movies_data.json

关于此功能的唯一文档说:

  

向现有过滤器添加更多数据

     

如果您使用ajax传输json数据,那么您可以添加类似的数据   此

     

fJS.addData(data)

     

这里fJS是Filter.js对象,数据是json记录。

我正在尝试使用此代码创建一个新框,它回显“添加”,但没有添加任何框,并且它不会打印“已添加”

<button id="add">ADD</button>
<script>
$("#add").click(function() {
    alert("add");
    var myNewBox = '[{"name":"Woho","outline":"Two imprisoned men bond over a number of years, finding solace and eventual redemption through acts of common decency.","rating":"9.3","director":"Frank Darabont","year":"1994","stars":["Tim Robbins","Morgan Freeman","Bob Gunton"],"runtime":"142","genre":["Crime","Drama"],"certificate":"R"}]';
    fJS.addData(myNewBox);
    alert("added");
});
</script>

控制台给出了我的错误:ReferenceError:未定义fJS

如果有人能帮助我改变我的功能以便能够添加数据,我会很高兴。

提前非常感谢!

1 个答案:

答案 0 :(得分:0)

可能的冲突: 当usinf第三方插件以某种方式$不处于其原生jQuery状态时。所以为了确保我在它的原生jQuery中使用它,它必须传递给函数,就像这样......

jQuery(function ($) {...});

这样做就是告诉jQuery在这些函数中实例化和重新分配。

然后下一步就是把你的代码放进去......

jQuery(function ($) {   
   $("#add").click(function() {
        alert("add");
        var myNewBox = '[{"name......]';
        fJS.addData(myNewBox);
        alert("added");
    });
});

另外我建议您切换myNewBox放置addData的位置以及addData放置myNewBox的位置,这更有意义,因为您希望推送到addData,就像这样...

var addData= '[{"name......]';
    fJS.addData(myNewBox);