我在组合一些jQuery函数时遇到了麻烦。任何帮助表示赞赏。每个脚本都是单独工作的,但是当我尝试将它们组合在一起时,只有一个可以工作(iOS悬停),我不知道为什么。我只针对iOS设备上的问题做了一些解决方法。我想在第一个函数中加入第二个函数,我似乎无法做到。
只要第二个函数被注释掉,第一个函数就可以正常工作:
$(document).ready (function(){
/**iOS phone number fix for text color**/
$(".phone #phonenumber").remove();
$(".phone").append("<div id='phonenumber2'><span class='callustext'>Call us : (800) 000-0000</span></div>");
/**iPad fixes for subnav styling at 768px**/
if(screen.width == 768){
$("#innerpage .mainnav ul li ul").css("background","transparent");
$("#innerpage .mainnav ul li.mainnavlink a:hover").css("color","#91b39e");
$("#innerpage .mainnav ul li.mainnavlinkactive a:hover").css("color","#91b39e");
$("#innerpage .mainnav ul li.mainnavlink ul li a").css("border-bottom","none");
$("#innerpage .mainnav ul li.mainnavlinkactive ul li a").css("border-bottom","none");
$("#innerpage .mainnav ul li.mainnavlink ul li a:link").css("text-transform","none").css("color","#d7d7d7");
}
});
第一个被注释掉后,第二个功能正常工作:
/**iOS Hover fix**/
$(document).ready(function() {
if(navigator.platform == "iPad") {
$("a").each(function() {
var onClick; // this will be a function
var firstClick = function() {
onClick = secondClick;
return false;
};
var secondClick = function() {
onClick = firstClick;
return true;
};
onClick = firstClick;
$(this).click(function() {
return onClick();
});
});
}
});
答案 0 :(得分:1)
$(document).ready
是一个在文档加载时被调用的函数。如果定义一个函数两次,则第二个定义将覆盖第一个。因此,您必须创建一个包含所有内容的单一内容 - 尝试
$(document).ready (function(){
/**iOS phone number fix for text color**/
$(".phone #phonenumber").remove();
$(".phone").append("<div id='phonenumber2'><span class='callustext'>Call us : (800) 000-0000</span></div>");
/**iPad fixes for subnav styling at 768px**/
if(screen.width == 768){
$("#innerpage .mainnav ul li ul").css("background","transparent");
$("#innerpage .mainnav ul li.mainnavlink a:hover").css("color","#91b39e");
$("#innerpage .mainnav ul li.mainnavlinkactive a:hover").css("color","#91b39e");
$("#innerpage .mainnav ul li.mainnavlink ul li a").css("border-bottom","none");
$("#innerpage .mainnav ul li.mainnavlinkactive ul li a").css("border-bottom","none");
$("#innerpage .mainnav ul li.mainnavlink ul li a:link").css("text-transform","none").css("color","#d7d7d7");
}
if(navigator.platform == "iPad") {
$("a").each(function() {
var onClick; // this will be a function
var firstClick = function() {
onClick = secondClick;
return false;
};
var secondClick = function() {
onClick = firstClick;
return true;
};
onClick = firstClick;
$(this).click(function() {
return onClick();
});
});
}
});