在我的网站中,包含以下两个文件:index.php,script.js 当然,它在网站上要复杂得多,而上面只显示了它的一部分。
在index.php中,有一个div元素
<div id="phb29" class="drag ph hour01">Testing</div>
在script.js中,这是一个纯javascipt文件,下面显示了一个我想使用jquery函数.switchClass()(来自http://api.jqueryui.com/switchClass/)来切换div元素类的部分。
//... other normal js codes
switchClassHour = function(){
$(function (){
$( "#phb29" ).switchClass( "hour01", "hour03", 1000 );
return false;
});
}
//other normal js codes...
我只想在调用switchClassHour()函数时调用那个jquery但是没有加载网页(即$(document).ready(function(){...});)
我已将源包含在index.php中:
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script type="text/javascript" src="script.js"></script>
但最后,Chrome浏览器在$(function(){当我触发switchClassHour()时出现这个错误:
Uncaught TypeError: boolean is not a function
我该怎么办,谢谢!!!!! :):)
答案 0 :(得分:0)
function switchClassHour(){
if(document.getElementById('jq')){
//original switchClassHour() code.
}
else{
var jq = document.createElement('script');
jq.src = "WHATEVER SOURCE YOU WANT TO LOAD FROM (PROBABLY GOOGLE)";
jq.id = "jq";
document.getElementsByTagName('head').item(0).appendNode(jq);
//Original switchClassHour() code
}
}
我不知道这是否可以保证有效,因为我不知道你是否能够快速加载jQuery以便随后立即调用你的函数。如果这不起作用,因为jQuery加载速度不够快,那么我能看到的唯一结果就是增加延迟,但这很难看。说实话,如果您正在使用jQuery,我只会通常在您网页的<head>
中从Google加载它。大多数人已经缓存了它。
答案 1 :(得分:0)
变量toHour
似乎未在函数switchClassHour
中定义。
试试这个
switchClassHour = function(){
/* `toHour` ? */
if (window.jQuery) {
/* $(function (){ */
$( "#phb29" ).switchClass( "hour01", "hour03", 1000 );
/* `return false;` ? */
/* }); */
};
};
switchClassHour(); /* just noticed, is the function actually called ? */
修改
试试这个
switchClassHour = function(){
/* `toHour` ? */
if (window.jQuery) {
/* $(function (){ */
console.log($.now())
/* `return false;` ? */
/* }); */
};
};
switchClassHour();
$.now()
是否在控制台返回?
非{jquery片段的其他部分是否使用$
?
另见https://api.jquery.com/jQuery.noConflict/
修改
试试这个
switchClassHour = function() {
jQuery.noConflict();
(function( $ ) {
console.log($.now(), jQuery.now())
})(jQuery);
};switchClassHour();
希望这有帮助