【问题标题】:Why doesn't this jquery code work in ie6?为什么这个 jquery 代码在 ie6 中不起作用?
【发布时间】:2010-11-04 12:08:47
【问题描述】:

我这里有一些 jquery 代码在 firefox 中运行良好,但是当我在 ie6 中测试时,我看不到它在所有工作(没有显示 div)。

这是我的html

 <b>Calendar:</b> <select name="CalendarId" id="calendar_list">
 <option value="1">Vacation</option><option value="2">Internal Travel</option>
 <option value="13">ER</option><option value="33">PMO Calendar</option>
 </select>

 <span style="display: none;" id="calendarlabel"></span>

    <hr>

    <div id="location" style="display: none;">
    <label>Travelling to:</label> <select id="location_list" name="TechnicalCentreId">    
 <option></option>
 <option value="1">Bangalore</option>
 <option value="2">Chennai</option>
 </select>
    </div>

这是我的javascript:

 $('#calendar_list').live('change', function () {
    var calendarId = $(this).val();
    if (calendarId == 2) {
        $("#location").show();
    }
    else {
        $("#location").hide();
    }
});

首先,有谁知道为什么上面的代码不能在 ie6 中运行,但在所有其他浏览器中都可以?

其次,我该如何调试它,因为它似乎只是 ie6 中的一个问题(需要等效的 firebug 才能看到发生了什么)

【问题讨论】:

  • 如果您显示一些标记,包括#calendar_list 和#location,这个问题会更容易回答
  • @Dr.Molle - 我已经添加了我的 html 以及 javascript

标签: jquery firebug internet-explorer-6


【解决方案1】:

IE 不能正确地冒泡 'change' 事件,所以你不能使用 live('change')。

相反,在加载时将您的行为绑定到更改事件:

$(document).ready(function(){

 $('#calendar_list').change(function () {
 ...
 });
});

http://api.jquery.com/live/

【讨论】:

  • 需要直播,因为我正在使用 ajax 刷新。我最终使用了似乎可以解决问题的 livequery 插件
  • 我在动态内容上的 live('change') 遇到了类似的问题。 live() 适用于许多其他事件,但对于“更改”,您可以在 ajax 调用的成功处理程序中重新绑定行为。
【解决方案2】:

您可以使用 Firebug Lite。它允许您在无法使用完整扩展程序的情况下使用精简版 Firebug。

http://getfirebug.com/firebuglite

使用 Firebug Lite 所需要做的就是添加以下外部脚本:

<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>

【讨论】:

    【解决方案3】:

    【讨论】:

    • 是的,但是 IE 开发工具栏是有史以来最糟糕的调试软件,几乎没有用处。或者我只是被 Firebug/Web Inspector 宠坏了。
    • @deceze - 它有助于解决显示问题
    • ...到如此有限的范围,它几乎是无用的。请注意,并非完全没用,但几乎如此。 :o)
    • 如果你知道如何使用它会很有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多