jQuery无法处理路由更改(Svelte,Sapper)

时间:2020-09-09 21:53:47

标签: jquery svelte sapper svelte-3

我使用jquery的datepicker插件,它在第一次加载页面时有效,但是当我进入某条路线时,输入不再显示datepicker,而仅在重新加载页面。

  onMount(() => {
window.$("#datePick").datepicker({
  dateFormat: "mm-dd-yy",
  minDate: new Date(),
  language: "en",
});
window.$("#dateOne").datepicker({
  dateFormat: "mm-dd-yy",
  minDate: new Date(),
  language: "en",
}); });

那是我在组件中运行的代码。

还在template.html中将javascript文件称为

<link rel="stylesheet" href="/datepicker.min.css" />
<script type="text/javascript" src="/datepicker.min.js"></script>
<script type="text/javascript" src="/datepicker.en.js"></script>

我做错了什么?谢谢您的帮助

1 个答案:

答案 0 :(得分:0)

我猜您的问题出在您的onMount的定义位置。

该组件可能不会销毁/重新安装,这就是为什么当您前后导航时未调用该函数,因此无法重新初始化日期选择器的原因。

实际上,苗条的动作是与第三方API集成的最佳方法。

<script>
  function jqueryDatePicker(divElem) {
    $(divElem).datepicker({
      dateFormat: "mm-dd-yy",
      minDate: new Date(),
      language: "en",
    })
  }
</script>

<div use:jqueryDatePicker />

您可以查看此"Introducton to actions"