未捕获的TypeError:$(...)。sidr不是函数[Console Chrome开发人员工具]

时间:2016-08-10 20:10:53

标签: javascript jquery html css wordpress

我把这段代码添加到wordpress页面构建器的基本模块HTML块中。我遇到了死亡的白屏。 Chrome开发者控制台告诉我以下内容:

helpers.js?ver=4.5.3:15 Uncaught TypeError: $(...).sidr is not a function

这可以从helpers.js?ver = 4.5.3:

中的第15行进行追踪
        $('#mobile-menu-trigger').sidr({
        source: sourceVal,
        name: 'sidr-main'
    });

在我恢复以前版本的页面之前或之后,没有出现这样的错误。如果保存为html文件并使用chrome打开它,下面的html代码似乎正常运行。有人可以解释哪些可能导致该错误?

编辑:当我改变wordpress的主题时,一切都会再次起作用。对于所有其他主题,代码可以正常运行,因此问题应该来自主题。



$(document).ready(function() {       
       getUpdates();    
   });   
   function getUpdates() {
        
   	// get the data with a webservice call
   	$.getJSON('http://api.thingspeak.com/channels/136053/feed/last.json?callback=?', function(data) {   			    					
   			// if the field1 has data update the page
   			if (data.field1) {
   			    document.querySelector('.info-giver .temperature').innerHTML = data.field1.slice(0,4) + "°C";
   			    document.querySelector(".info-giver .humidity").innerHTML = data.field2.slice(0,5) + "%";
   			    document.querySelector('.info-giver .windspeed').innerHTML = data.field4.slice(0,4) +" m/s";
   			    document.querySelector(".info-giver .pressure").innerHTML = data.field3 +"Pa" ;   					   
   			}              
   	});
   	
   }
   (jQuery);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class = "announcer">
<div class="temperatureDeclared" style= "width: 25.00%">Temperature</div>
<div class="humidityDeclared" style= "width: 25.00%">Humidity</div>
<div class="windspeedDeclared" style= "width: 25.00%">Windspeed</div>
<div class="pressureDeclared" style= "width: 25.00%">Pressure</div>
</div> 
<div class = "info-giver">
<div class="temperature" style= "width: 25.00%">N/a</div>
<div class="humidity" style= "width: 25.00%">N/a</div>
<div class="windspeed" style= "width: 25.00%">N/a</div>
<div class="pressure" style= "width: 25.00%">N/a</div>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

您没有包含您的sidr库。加载jquery后包含sidr库。之后在你的html上使用这个init sidr。

$('#mobile-menu-trigger').sidr({....});

答案 1 :(得分:1)

在代码运行之前和之后添加这些行

;(function($){
   //code
})(jQuery);

就像这样

;(function($){
 $('#mobile-menu-trigger').sidr({
        source: sourceVal,
        name: 'sidr-main'
 });
})(jQuery);

我希望这会有效!