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

问题描述

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

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

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

还在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>

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

解决方法

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

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

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

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

<div use:jqueryDatePicker />

您可以查看此"Introducton to actions"