Timeglider 不允许我使用给定函数销毁所有变量

Timeglider does not let me destroy all variables with the given function

我对 jQuery 小部件不是很了解,我不知道如何访问 destroy 函数。您可以在此处找到旧版本的该功能:https://code.google.com/p/codeset/source/browse/trunk/web/timegliderExample/js/timeglider/timeglider.timeline.widget.js?r=4

通常你创建 timeglider 使用:

tg1 = $("#timelinearea").timeline({...

所以我也尝试访问 destoy 函数:

tg1 = $("#timelinearea").timeline.destroy();
tg1 = $("#timelinearea").destroy();
tg1.destroy();

但是控制台总是说找不到函数。我如何访问该功能?

控制台输出

"350px" timeline.js:44:8
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
"0px" timeline.js:44:8
"350px" timeline.js:44:8
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
"0px" timeline.js:44:8
"350px" timeline.js:44:8
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
"0px" timeline.js:44:8
"350px" timeline.js:44:8
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43
Array [ "titlebar:", "hiddenBar" ] ba-debug.min.js:27:43

我认为输出总是成倍增加是不正常的。我在滑出和滑入的 div 上使用时间滑块。这就是 0px 和 350px 的意思。滑出时做我删除对象。通过滑入,我读取了一个 json 文件。

如果您想从 DOM 中删除#timelinearea,请使用 remove();

$("#timelinearea").remove();

参见:http://api.jquery.com/remove/

我用官方方法解决了。所以首先他们没有工作,因为 timeglider 在以某种方式使用最新的 jQuery 版本方面仍然存在问题。所以我现在使用的是最新的 1.* jQuery 版本,无论如何它都非常适合 timeglider。

正如我所说,这让我现在可以使用官方方法。首先,我用以下方法初始化了 timeglider:

function initializeTimeline(jsonfile) {
    tg1 = $("#timelinearea").timeline({
        "min_zoom":20,
        "max_zoom":60,
        "image_lane_height":10,
        "icon_folder":"timeglider/icons/",
        "data_source":"json/" + jsonfile,
        "constrain_to_data": true,
        "show_footer": false,
        "display_zoom_level": true
    });
    tg_instance = tg1.data("timeline");
};

现在我可以使用 tg_instance 并更改文件,例如:

tg_instance.loadTimeline("json/someOtherData.json", function(){debug.log("cb!");}, true);

确定不需要回调。

所以只需加载初始化方法 一次 次,再也不会,一切都很好。