结合jQuery函数

时间:2014-05-01 14:59:44

标签: jquery ios

我在组合一些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();
       });
     });
   }
});

参考:iOS automatic hover fix?

1 个答案:

答案 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();
       });
     });
   }
});