【问题标题】:Uncaught TypeError: Cannot read property 'id' of undefined未捕获的类型错误:无法读取未定义的属性“id”
【发布时间】:2011-06-11 21:53:59
【问题描述】:

我正在使用 WordPress 开发一个网站。我不知道为什么,突然它给出了错误Uncaught TypeError: Cannot read property 'id' of undefined。我几乎尝试了所有事情。删除了插件,删除了最宽的。但它仍然为此抱怨。由于它,我的脚本无法正常工作。

错误出现在页面的第 63 行,其中包含

<link rel="stylesheet" type="text/css" href="http://localhost/hhf/wp-content/plugins/jquery-mega-menu/css/dcjq-mega-menu.css" media="screen" /><script type="text/javascript">/* <![CDATA[ */
        (function($){$.fn.s3Slider = function(vars) { var element = this; var timeOut = (vars.timeOut != undefined) ? vars.timeOut : 4000; var current = null; var timeOutFn = null; var faderStat = true; var mOver = false; var items = $("#" + element[0].id + "Content ." + element[0].id + "Image"); var itemsSpan = $("#" + element[0].id + "Content ." + element[0].id + "Image span"); items.each(function(i) { $(items[i]).mouseover(function() { mOver = true; }); $(items[i]).mouseout(function() { mOver = false;fadeElement(true); }); });var fadeElement = function(isMouseOut) { var thisTimeOut = (isMouseOut) ? (timeOut/2) : timeOut; thisTimeOut = (faderStat) ? 10 : thisTimeOut; if(items.length > 0) { timeOutFn = setTimeout(makeSlider, thisTimeOut); } else { console.log("Poof.."); } }; var makeSlider = function() {current = (current != null) ? current : items[(items.length-1)]; var currNo = jQuery.inArray(current, items) + 1; currNo = (currNo == items.length) ? 0 : (currNo - 1); var newMargin = $(element).width() * currNo; if(faderStat == true) { if(!mOver) { $(items[currNo]).fadeIn((timeOut/6), function() { if($(itemsSpan[currNo]).css('bottom') == 0) { $(itemsSpan[currNo]).slideUp((timeOut/6), function() { faderStat = false; current = items[currNo]; if(!mOver) { fadeElement(false); } }); } else { $(itemsSpan[currNo]).slideDown((timeOut/6), function() { faderStat = false; current = items[currNo]; if(!mOver) { fadeElement(false); } }); } }); } } else { if(!mOver) { if($(itemsSpan[currNo]).css('bottom') == 0) { $(itemsSpan[currNo]).slideDown((timeOut/6), function() { $(items[currNo]).fadeOut((timeOut/6), function() { faderStat = true; current = items[(currNo+1)]; if(!mOver) { fadeElement(false); } }); }); } else { $(itemsSpan[currNo]).slideUp((timeOut/6), function() { $(items[currNo]).fadeOut((timeOut/6), function() { faderStat = true; current = items[(currNo+1)]; if(!mOver) { fadeElement(false); } }); }); } } } }        
    makeSlider();};})(jQuery); jQuery(document).ready(function() { jQuery('#slider').s3Slider({ timeOut: 3000 }); });   /* ]]> */</script>

我正在使用 jQuery Mega Menu 小部件插件。

【问题讨论】:

  • 我检查了页面中没有元素#slider。我认为这是问题所在。但是我怎么知道为什么这个脚本会在页面中生成。
  • 我收到了错误,第 63 行生成的脚本正在尝试访问页面上不存在的元素#slider,所以为什么它的 id 无法访问。但我找不到哪个插件在标题中生成此脚本。
  • 第 63 行是打包好的 JavaScript 行。

标签: jquery wordpress jquery-plugins wordpress-theming


【解决方案1】:

在测试并定位它的来源后,Ultimate Custom Type Manager 插件正在生成一些脚本,脚本文件是 class-gallery.php 所以它正在为页面上不存在的#slider 元素生成脚本。希望有人能尽快修复它。

用此代码替换文件 class-gallery.php 的第 82

$r.="jQuery(document).ready(function() { if(jQuery('#slider').length > 0) { jQuery('#slider').s3Slider({ timeOut: 3000 }); } });";

解决了问题。

【讨论】:

    猜你喜欢
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2015-01-06
    • 2017-07-26
    • 2019-02-26
    相关资源
    最近更新 更多