小编Bri*_*ian的帖子

获取hashchange事件以适用于所有浏览器(包括IE7)

我有一些代码(由另一个开发人员编写)在WordPress内部进行AJAX页面加载(例如,没有页面重新加载),当您单击导航项时,AJAX刷新主要内容区域.我的问题是它在IE7中被破坏了,我不知道从哪里开始调试.

原来的开场线是

var queue = 0;

$('document').ready(function() {
    window.addEventListener("hashchange", hashChange, false);

    // Define window location variables
    var windowHost = window.location.host,
        windowHash = window.location.hash,
        windowPath = window.location.pathname;
Run Code Online (Sandbox Code Playgroud)

但是我改变它们以addEventListener根据该方法是否存在来作出条件限制.一些研究告诉我,该方法在旧版本的IE中不可用(例如在我的情况下为7).此外,IE7调试控制台将其识别为不可用的方法,因此非常清楚.我重写了以下行,但代码仍然无法正常工作:

var queue = 0;

$('document').ready(function() {
    if(window.addEventListener) {
        window.addEventListener("hashchange", hashChange, false);
    }
    else if (window.attachEvent) {
        window.attachEvent("hashchange", hashchange, false);    
    }
    // Define window location variables
    var windowHost = window.location.host,
        windowHash = window.location.hash,
        windowPath = window.location.pathname;
Run Code Online (Sandbox Code Playgroud)

可以在此pastebin中查看完整的原始脚本:http://pastebin.com/Jc9ySvrb

javascript jquery internet-explorer fragment-identifier hashchange

17
推荐指数
1
解决办法
2万
查看次数

翻译多语言网站的PHP日期()

我正在尝试创建PHP内部日期()函数的条件转换.是否有可能以某种方式重新定义内部变量 - 例如 - date('M'),date('y')等,以便在此测试的基础上将不同的字符串输入到PHP函数的其余部分:

if (ICL_LANGUAGE_CODE == 'fr') { }
Run Code Online (Sandbox Code Playgroud)

以下是我用于日期模块的代码的工作示例.由于$date定义了此定义中包含的许多变量,因此必须date()首先在PHP中有条件地重新定义变量,以避免必须在每个键内重新定义变量100次或更多次.

if($start <= $end):
    if($start == $end):
        //Month Day, Year
        $date =  date('F', $start).' '.date('j',$start).', '.date('Y', $start);
    else:
        if($start_year == $end_year):
            if($start_month == $end_month):

                //Month Day - Day, Year
                $date = date('F', $start).' '.date('j',$start).' - '.date('j', $end).', '.date('Y', $start);
            else:
                //Month Day - Month Day, Year
                $date =  date('F', $start).' '.date('j',$start).' - '.date('F', $end).' '.date('j', $end).', '.date('Y', $start);
            endif;
        else:
            //Month Day, Year - Month …
Run Code Online (Sandbox Code Playgroud)

php datetime date

15
推荐指数
2
解决办法
2万
查看次数

jQuery fadeIn on position:绝对导致z-index问题

技术上我正在使用,fadeToggle()但他们是表兄弟......基本上我的问题是我有一个绝对定位的div我正在使用slideToggle()但是Z-index在动画完成之前没有被设置.结果是在淡入淡出期间,相邻div中的文本(其z-索引值低于一个淡入的z-index值)出现在"具有较高z-index的div中的淡入"之上.

有人熟悉这个怪癖吗?知道任何变通方法吗?

编辑:请允许我澄清:当动画完成时,z-index正确解析,但在转换过程中,文本位于其上方.

javascript debugging jquery

14
推荐指数
1
解决办法
1万
查看次数

jQuery hoverIntent:'未捕获的TypeError:无法调用方法'apply'of undefined'

我正在使用Brian Cherne的hoverIntent.js插件进行项目.这是一个很棒的插件,但似乎在jQuery 1.7.1中被打破了.

我正在尝试调试它,但我不是那里最杰出的javascripter.任何人都可以告诉我在他的代码中我可能需要寻找什么来修复以下错误消息:

Uncaught TypeError: Cannot call method 'apply' of undefined

这就是我的Chrome控制台告诉我的内容.我只是不确定要改变什么.

插件中包含以下代码行,其中包含apply字符串

return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};

编辑

我应该发布链接到Brian的完整注释代码.它在这里:http://cherne.net/brian/resources/jquery.hoverIntent.js

编辑2

我的脚本如下

//#nav-main dropdown effects                
$('#nav-main ul li').hoverIntent(function () {
   $(this).find('.dropdown').stop(true,true).slideToggle('500');
});
Run Code Online (Sandbox Code Playgroud)

javascript debugging syntax jquery

14
推荐指数
1
解决办法
2万
查看次数

Fancybox返回"无法加载请求的内容.请稍后再试."

使用的fancybox一个模式对话框播放YouTube视频.

我的问题是我不断收到"请求的内容无法加载.请稍后再试."

模式框弹出,所以我知道脚本正在运行,这可能是我的API调用的问题...这是我的电话:

<script type="text/javascript">
$(document).ready(function() {

            /* This is basic - uses default settings */

            $("a.fancybox").fancybox({
                'hideOnContentClick': true
            });

            /* This is a non-obtrustive method for youtube videos*/

            $("a[rel=fancyvideo]").fancybox({
                overlayShow: true,
                frameWidth:640,
                frameHeight:360,
            });
        });
</script>
Run Code Online (Sandbox Code Playgroud)

javascript debugging jquery fancybox

7
推荐指数
1
解决办法
3万
查看次数

可以在编译期间控制台记录LESS变量吗?

我正在使用Bootstrap和LESS CSS对一个非常复杂的父/子主题系统进行一些调试.我不会详细介绍那个问题,除了说我正在声明自定义颜色和其他变量,variables.less但编译的CSS没有使用这些变量,但是,我已经验证了文件实际上是在编译和成功包括在内

所以,我真正需要的是能够以某种方式console.log获得LESS变量(特别是在编译运行时),但尽管事实上LESS声称支持LESS文件中的javascript,但这是行不通的.任何人都可以阐明这个/有经验吗?

css debugging less web

7
推荐指数
1
解决办法
2918
查看次数

MailChimp jQuery Conflict

我一直在将MailChimp整合到我正在设计的网站中的时间最长!

问题是验证不适用于嵌入式订阅表单.该表单不是内联错误消息,而是将用户踢到MailChimp注册页面以更正错误或确认列表选择.

我已经对代码进行了大量的自定义,所以遗憾的是回到默认值不是一个选项.

这是我得到的错误,但我是JS n00b,所以我不知道他们的意思:

中断错误mce_jQuery未定义:

截屏2010-08-22 at 4.34.50 AM.jpg

我不认为这是一个可以通过控制台捕获的错误.

奇怪的是这个.如果我删除自定义代码并从MailChimp发布静态代码它会以某种方式工作,但我已经复制了所有相关代码的重要功能,但仍然没有骰子.

您可以在http://ranya.net/wp/contact上观看该网站

MailChimp列表注册位于右上角滑动下拉列表中.相关脚本嵌入在div#top_mailing之后.

javascript debugging conflict mailchimp

6
推荐指数
1
解决办法
9930
查看次数

CSS3:悬停动画有z-index错误

好的,所以我有一个空<span>的嵌套在我<li>的无序列表的旁边.跨度包含应该出现的背景图像:hover.问题在于,当动画正在转换时,z-index是错误的,<span>堆栈本身位于<a>DOM之前的元素前面.但是,一旦动画完成,堆叠顺序就会自行更正.结果是效果的视觉突然"快照",并且链接在CSS3过渡期间变得不可点击.

任何人都可以分解DOM级别发生的事情吗?我怎样才能解决这个问题?

您可以在此处看到一个演示此问题的工作示例:http://jsfiddle.net/qZkfw/1/

我的HTML

        <div id="nav">
          <ul id="nav-main">
            <li><a href="#">Home</a><span></span></li>
            <li><a href="#">About</a><span></span></li>
            <li><a href="#">Get Fit</a><span></span>
                <ul class="nav-secondary">
                  <li><a href="#">Exercise Library</a></li>
                  <li><a href="#">Find An Instructor</a></li>
                  <li><a href="#">Fitness Tools</a></li>
                </ul>
            </li>
            <li><a href="#">Find An Instructor</a><span></span></li>
            <li><a href="#">Get Certified</a><span></span></li>
          </ul>
        </div>
Run Code Online (Sandbox Code Playgroud)

我的CSS

#nav-main li {
    margin:0;
    padding:5px;
    position: relative;
    display: block;
    float: left;
    margin-left: 10px;
}

#nav-main li a {
    color: #97dd6e;
    font-size: 1.1em;
    text-decoration: none;
    text-align: center;
    margin-right: -7px; …
Run Code Online (Sandbox Code Playgroud)

css debugging user-interface css3

6
推荐指数
1
解决办法
3750
查看次数

jQuery slideDown/slideUp在IE7中不起作用

所以我使用了一个非常基本的jQuery .slideDown,它在FF,Safari和Chrome中运行良好.在IE7中根本不起作用.这是脚本:


//Top Mailing List Drop down animation
$(document).ready(function() {
$('div#top_mailing_hidden').hide();

// Expand Panel
$("input#top_mailing").focus(function(){
$("div#top_mailing_hidden").slideDown("slow");
});

// Collapse Panel
$("input#top_mailing").blur(function(){
$("div#top_mailing_hidden").slideUp("slow");
});
});
Run Code Online (Sandbox Code Playgroud)

我已经研究了几个小时,发现了一些与滑动/缩小有关的错误,导致它在用于postion的后代时在IE7中失败:固定元素.这个动画发生在一个位置:固定的导航栏,但是,我已经尝试用位置包装内部元素:相对但无济于事,我仍然在IE中得不到任何东西.另外,请注意nav元素是用jQuery隐藏的,即使在IE7中该函数也能正常工作,但是,滑动/缩小不是.

这是相关的CSS:

/* --------------Top Dropdown Mailing List------------------- */

#top_nav div#top_mailing{
    float: right;
    width: 351px;
    padding: 0 10px 10px 5px;
    background: url(images/top_mailing_bg.png) bottom center no-repeat;
    position: absolute;
    top: 0;
    right: 0;
    color: #fff;
    text-shadow:0 -1px 0px #222;
}
#top_mailing #top_mailing_hidden{
    font-size: .7em;
    text-align: center;
    position: relative;
    height: 30px;
    zoom: 1;
}
#top_mailing #top_mailing_hidden div{
}
#top_mailing #top_mailing_hidden …
Run Code Online (Sandbox Code Playgroud)

javascript css jquery slideup internet-explorer-7

5
推荐指数
2
解决办法
1万
查看次数

用.hoverIntent替换MouseOver

首先,我道歉...我之前已经发布过这个问题,但我解释不好.我在将hoverIntent插入以下JavaScript时遇到问题...我需要它来替换下面的mouseentermouseleave函数.为了清楚起见,我正在寻求帮助,因为我对JavaScript语法不是很了解.下面的第二个代码片段似乎应该可以工作,但它什么都不做,似乎在Internet Explorer中完全死了.

if (jQuery.browser.msie === true) {
  jQuery('#top_mailing')
    .bind("mouseenter",function(){
      $("#top_mailing_hidden").stop().slideDown('slow');
    })
    .bind("mouseleave",function(){
      $("#top_mailing_hidden").stop().slideUp('slow');
    });
}
Run Code Online (Sandbox Code Playgroud)

我将以下内容用于其他浏览器,但它在Internet Explorer中无法正常运行.

$('#top_mailing').hoverIntent(
  function () {
    $("#top_mailing_hidden").stop().slideDown('slow');
  }, 
  function () {
    $("#top_mailing_hidden").stop().slideUp('slow');
  }
);
Run Code Online (Sandbox Code Playgroud)

javascript debugging jquery hoverintent internet-explorer-7

5
推荐指数
1
解决办法
6011
查看次数