为什么这个jquery代码不能在ie6中运行?

时间:2010-11-04 03:30:54

标签: jquery firebug internet-explorer-6

我在这里有一些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中的一个问题(需要萤火虫相当于看到发生了什么)

3 个答案:

答案 0 :(得分:2)

IE不会正确地冒泡“更改”事件,因此您无法使用直播(“更改”)。

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

$(document).ready(function(){

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

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

答案 1 :(得分:0)

您可以使用Firebug Lite。它允许您使用精简版的Firebug,您无法使用完整的扩展名。

http://getfirebug.com/firebuglite

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

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

答案 2 :(得分:0)