【问题标题】:How to import jquery ui touch punch in Angular 2 Webpack app?如何在 Angular 2 Webpack 应用程序中导入 jquery ui touch punch?
【发布时间】:2017-01-13 21:16:01
【问题描述】:

我有 jQuery 范围滑块小部件,我可以这样导入和使用:

declare var jQuery: any;

import 'jquery-ui/ui/widgets/slider';
import 'jquery-ui/ui/widgets/mouse';

并像这样使用它:

jQuery(this.elementRef.nativeElement).find('#range-slider').slider({..});

我的滑块工作正常。

问题是我需要启用移动触摸的滑块,所以我导入了 jQuery UI Touch Punch

declare var jQuery: any;

import 'jquery-ui/ui/widgets/slider';
import 'jquery-ui/ui/widgets/mouse';
import 'jquery-ui-touch-punch';

但它错误:

TypeError: Cannot read property 'prototype' of undefined

显然它找不到 jQuery 和 jQuery UI。但是,当导入的 jQuery 不在全局范围内时,如何通过 jQuery 来触摸打孔?

我在我的项目中使用this 样板。

【问题讨论】:

标签: jquery jquery-ui angular webpack jquery-ui-touch-punch


【解决方案1】:

这对我有用(可排序而不是滑块,但想法相同):

import * as $ from 'jquery';
import 'jquery-ui/ui/widgets/sortable';

(window as any).jQuery = $;
require('jquery-ui-touch-punch');

最后的 require 而不是 import 很重要。如果您使用导入,则在窗口上设置 jQuery 全局的代码将在触摸打孔导入之后运行,因为导入在其他所有操作之前运行。

【讨论】:

  • 这种方法似乎对我有用,我试图在 webpack VueJS 项目中为 FullCalendar 实现可拖动元素,而无需全局导入 jquery
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
相关资源
最近更新 更多