【问题标题】:Combining jQuery functions结合 jQuery 函数
【发布时间】:2014-05-01 14:59:43
【问题描述】:

我在组合几个 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?

【问题讨论】:

  • 您为什么要使用文档就绪函数?你应该只使用一个。
  • 这就是我想要做的,但代码不起作用。我将它们分开,看看是哪一个导致了错误。每个都可以正常工作,但是当我在第一个函数中包含 iOS 修复程序时,iOS 修复程序可以工作,但所有样式都不起作用。
  • 你能在 js fiddle 中复制你的问题吗?
  • 我不知道我是否可以,因为我正在使用第三方模板并为客户定制它。

标签: jquery ios


【解决方案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();
       });
     });
   }
});

【讨论】:

  • 我意识到这一点,但它没有用。如果我将另一个注释掉,我将它们分开,看看哪个有问题。
  • 我试过你的代码(并且有同样的东西),但文本颜色变化和样式不起作用。只有 iOS 悬停有效。
猜你喜欢
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多