我在 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/