javascript - jquery 小部件多次调用

标签 javascript jquery widget multiple-instances

我在 jquery 中创建了一个小部件并从 cshtml 调用它。第一次调用小部件已成功创建并且数据正确显示。但是,当第二次调用该小部件时,它不会命中小部件的“_create”函数。为什么会这样呢? 我是否需要在再次创建小部件之前销毁它,或者应该先初始化它,然后单独创建它。如果是的话请告诉我该怎么做?

这是我的小部件示例代码。

$.widget("namespace.widgetname", {

//These are default options
options: {
    Name: ""
},

//Triggers when widget called
_create: function () {
console.log($(this.element));
},
_destroy: function () {
    this.element.remove();
} 
})

在单击按钮时调用小部件,如下所示。

function Preview() {
$("#targetdiv").widgetname({
        Name: $('#txtAdminNameLeader').val()
    });
}

因此,简而言之,小部件调用不会触发多个调用。

我们将非常感谢任何帮助,因为我被困在这里 3 天了:( 谢谢

最佳答案

您不需要使用 _destory 函数来销毁小部件。您需要明确调用“destroy”,例如:

$("#targetdiv").widgetname("destroy");

然后你可以再次调用小部件,它肯定会命中 _create。

$("#targetdiv").widgetname({
    Name: $('#txtAdminNameLeader').val()
});

您也可以按如下方式在单行中执行此操作:

$("#targetdiv").widgetname({
    Name: $('#txtAdminNameLeader').val()
}).widgetname("destroy");

这个销毁只会销毁内存对象。在小部件的 _create 中做任何你想做的事情。 希望你的问题能够得到解决。 :)

关于javascript - jquery 小部件多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35475485/

相关文章:

javascript - 解析分组的json

javascript - 基本 JS/HTML5 Canvas 问题

flutter - showModalBottomSheet 未打开底部工作表,未发现 MediaQuery 小部件异常

php - 如何禁用WordPress的小部件 block 编辑器?

Android:从 Activity 外部调整小部件的参数

javascript - setTimeout 回调在事件循环的同一刻度中触发?

javascript - masonry - 列宽百分比 + 排水沟

javascript - React ref 组件不暴露方法

jQuery Waypoint - 想要反转功能

javascript - 为什么 JQuery 会破坏我的 HTML,添加额外的 <a> 标签?