我有一个我正在研究的测试网站,基本上是一个网站的模型。我安装了两个扩展。一个是RokSprocket,另一个是Responsive contact form。
现在,当我禁用联系表单模块时,roksprocket标签工作正常。但是当我启用它时,它们就会停止工作。 我检查了控制台,我有这个错误:
Uncaught TypeError: Object [object Object] has no method 'getCoordinates'
yjresponsive.js:72
size_menu yjresponsive.js:72
(anonymous function) yjresponsive.js:35
(anonymous function) mootools-core.js:121
(anonymous function) mootools-core.js:5
Array.implement.each mootools-core.js:9
invoke.fireEvent mootools-core.js:120
j mootools-core.js:175
从检查第一个错误是在(第72行代码)
function size_menu() {
if ($('mmenu_holder')) {
if (Browser.name == 'ie' && (Browser.version == 7 || Browser.version == 8)) {
var size = document.documentElement.clientWidth;
} else {
var size = window.getScrollSize().x;
}
var all_li = $$('ul.menunav li');
if (all_li.length > 0) {
var tops = all_li[0].getSiblings();
var tops_count = tops.length + 1;
var width = tops.getWidth().sum() + all_li[0].getWidth();
var menu_width = $('topmenu_holder').getCoordinates().width;
}
if (size < 980) {
$$('.top_menu,.top_menu_poz').removeClass('showmenu');
$$('#mmenu_holder').setStyle('display', 'block');
} else {
$$('#mmenu_holder').setStyle('display', 'none');
$$('.top_menu,.top_menu_poz').addClass('showmenu');
}
if (size > 980) {
$$('#mmenu_holder').setStyle('display', 'none');
$$('.top_menu,.top_menu_poz').removeClass('showmenu');
}
}
}
35岁的那个是
window.addEvent('domready', function () {
showmenu();
size_menu();
if ($('logo')) {
logo_size();
}
});
mootools只是一个标签:\
那是什么导致了这个错误?我对JavaScript的了解是不存在的:S
我发信息支持roksprocket,但是他们也指出了那个错误,仅此而已......
我在Joomla 3.2.3上。使用yougrids模板。
答案 0 :(得分:1)
响应式联系表单模块将jQuery引入您的模板。该模块包含一个名为“mod_responsive_contact_form.php”的文件,其中包含以下行:
$document->addScript('//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js');
这会导致与MooTools也使用的变量$
发生冲突。要解决此问题,您需要修改'mod_responsive_contact_form.php'。我对Joomla一无所知,或者跟我有什么关系。
在上面一行的下方添加以下库,以便jQuery可以继续使用$
。
$document->addScriptDeclaration('jQuery.noConflict();');
之后,您需要修改以下行:
$document->addScriptDeclaration('$(function () { $("input,select,textarea").not("[type=submit]").jqBootstrapValidation(); } );');
到
$document->addScriptDeclaration('jQuery(function () { jQuery("input,select,textarea").not("[type=submit]").jqBootstrapValidation(); } );');
这可以消除您遇到的错误。