PrestaShop hookDisplayAdminProductsExtra-jQuery不起作用

时间:2019-03-30 01:10:52

标签: jquery prestashop prestashop-1.6

在prestashop 1.6.1.23的自定义模块中,我想在后台的产品详细信息选项卡上使用jquery。要创建选项卡,我使用hookDisplayAdminProductsExtra函数。 jQuery已加载并且似乎正在工作。但是,如果我尝试使用简单的东西(例如隐藏元素),则什么也不会发生。

简单方案:

挂钩函数

public function hookDisplayAdminProductsExtra()
{
   return $this->display(__FILE__, '/views/templates/admin/j_product_tab.tpl');
}  

模板

<div class="aaa" id="abc">test</div>

脚本

window.onload = function() {
    $(".aaa").hide();
}

结果是:在产品详细信息中,有一个额外的选项卡。在选项卡上,有一个div,其中带有单词“ test”。但是它仍然可见。

通过添加

进行测试
if (window.jQuery) {  
    alert("OK");
} else {
    alert("not OK");
}

带来所需的结果=>带有“确定”的警报,因此jquery本身可以工作。但是由于产品详细信息页面还使用了许多其他脚本,所以我感到惊讶的是,模块中的脚本以某种方式被“阻止”,“覆盖” ...在我看来,切换产品详细信息标签会重新加载所有其他标签的内容,因此我尝试仅在额外标签处于活动状态时运行脚本。

所以我在脚本中使用了一种解决方法:

var a = document.getElementById('abc');
a.onmouseover = doHide;

function doHide() {
   $(".aaa").hide();
}

使用此替代方法,如果我访问产品页面,切换到附加选项卡,然后将鼠标移到元素上,脚本将成功运行,并且该元素将隐藏。但是我需要在脚本中执行更复杂的操作,即使使用此替代方法也无法运行。因此,我需要找到根本原因。

有人在这个特定领域(产品详细信息)和使用jquery有经验吗?我该怎么做才能解决此问题?

我觉得我应该使用一些调试工具,或者我缺少明显的东西,但这是我第一次使用prestashop模块,通常是Web应用程序开发。任何帮助将不胜感激。

0 个答案:

没有答案