首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQueryUI不工作(在预Prestashop)如何排除故障?

jQueryUI不工作(在预Prestashop)如何排除故障?
EN

Stack Overflow用户
提问于 2016-12-15 05:33:54
回答 2查看 3K关注 0票数 1

我正在建立一个模块的预Prestashop,有一个前厅控制器。我想使用jQueryUI。

在包含的JQueryUI中的模块(扩展module类)的主php文件中,如下所示:

代码语言:javascript
复制
    public function hookHeader()
{
    $this->context->controller->addJqueryUI('ui.core');
    $this->context->controller->addJqueryUI('ui.widget');
    $this->context->controller->addJqueryUI('ui.mouse');
    $this->context->controller->addJqueryUI('ui.slider');
}

我正在检查我的标题,我看到所有的脚本都是按照正确的顺序包含的。(见图) jQuery本身工作正常。但是,当我调用一个jQueryUI方法时,它说这个方法是没有定义的。

我只是想让基本实例发挥作用,有两种不同的方式,两者都不起作用。

代码语言:javascript
复制
$(document).ready(function(){
    $( "#date" ).datepicker();
});

这也不起作用

代码语言:javascript
复制
$( function() {
    $( "#date" ).datepicker();
} );

它一直在说$(...).datepicker is not a function

它看起来不像jQuery是包括两次,因为当我不调用任何UI方法时,它工作得很好。这只是一个“迁移”的问题,但是如果我重命名文件,使其不能包含,它会抛出大量不同的错误(其他函数突然发现未定义)。

另外,除了我的模块之外,我已经禁用了所有模块。同样的问题。

有趣的是

代码语言:javascript
复制
window.onload = function() {
   if (typeof jQuery.ui !== 'undefined') {  
        alert("jquery ui is loaded!");
    } else {
        alert("not working");
    }
}

上面写着上膛了!

,可能出什么事了?

我怎么解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-15 11:45:03

您需要做的是指定加载数据报警器。

代码语言:javascript
复制
$this->context->controller->addJqueryUI('ui.datepicker');

Prestashop中的jQuery UI为每个UI组件提供了不同的文件。因此,您需要指定要加载的组件。

在文件夹/js/jquery/ui中查看一下,您将看到哪些组件可用。

不需要指定ui.core, ui.mouse等(除非您只需要它们),因为它们是组件的依赖项,所以它们会自动加载,除非您在addJqueryUI方法中向false添加第三个参数。

每个组件的依赖项在媒体类中定义。

自动加载的对话框组件的依赖关系示例:

代码语言:javascript
复制
'ui.dialog' => array('fileName' => 'jquery.ui.dialog.min.js', 'dependencies' => array('ui.core', 'ui.widget', 'ui.position','ui.button'), 'theme' => true),
票数 3
EN

Stack Overflow用户

发布于 2016-12-15 06:21:02

现在,通过使用来自Google的托管库,它已经修复了:

代码语言:javascript
复制
$this->context->controller->addCSS('https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css');
$this->context->controller->addJS('https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js');

我有一种感觉,但一旦我再次包含其他模块,它就会崩溃。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41157078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档