Internet explorer 我讨厌我的情态窗口事件

Internet explorer 我讨厌我的情态窗口事件,internet-explorer,twitter-bootstrap,Internet Explorer,Twitter Bootstrap,我正在建立一个网站,并将Twitter Bootstrap modal.js作为我项目的一部分。和往常一样(引起了一些麻烦) 我有几个按钮,当单击每个按钮时,通过ajax获取一个不同的表单,用表单填充模式,并打开它。因为它们是动态获取的,所以在获取模式之后,我需要用额外的脚本(例如jQuery UI datepicker)更新一些字段。ajax调用不起作用后,我需要立即使用模态事件 这适用于chrome: $('#myModal').modal().on('shown', function()

我正在建立一个网站,并将Twitter Bootstrap modal.js作为我项目的一部分。和往常一样(引起了一些麻烦)

我有几个按钮,当单击每个按钮时,通过ajax获取一个不同的表单,用表单填充模式,并打开它。因为它们是动态获取的,所以在获取模式之后,我需要用额外的脚本(例如jQuery UI datepicker)更新一些字段。ajax调用不起作用后,我需要立即使用模态事件

这适用于chrome:

$('#myModal').modal().on('shown', function() {
    $('#id_date').datepicker();
});
然而,IE做了一些奇怪的事情。为了让它工作,我必须将侦听器绑定到“show”事件(“show”不工作)和文档,而不是模态

在文档中。就绪:

$(document).on('show', function() {
    $('#id_date').datepicker();
});
单击按钮后:

$('#myModal').modal('show'); 
但是这里是踢球者-这也不起作用,除非我添加一个
警报('hello')位于
.datepicker()上方。为什么警报会改变什么?我不知道,但它也会堆积起来——每次你点击其中一个按钮,就会得到更多的警报,即第一次一个警报,第二次两个警报,依此类推

我使用的是bootstrap2.2和IE8(标准模式,还有一个meta来确保页面呈现为IE8而不是旧版本)。我不知道这里有什么问题,请帮忙

更新

所以我把范围缩小了一点。这与“show”或“show”事件或其绑定目的无关。这很奇怪。这就是我最后做的:

$('#myModal').on('shown', function() {
     if (navigator.appName == 'Microsoft Internet Explorer') {
         alert('Hey! you should really use Chrome!');
     }
     $('#id_date').datepicker();
     $('#id_tags').chosen(); 
});


$('#button1').on('click', function() {
     $('#myModal').modal();
});

如果没有警报消息,IE不会运行日期选择器和随后立即出现的所选代码。为什么一个简单的警报会产生这样的影响?

编辑:重新考虑后,这似乎是一种竞赛条件

对于为什么会发生这种情况,我没有一个真正的答案,除了IE对于不同的jQuery版本和html5属性来说是一个难题

然而,我确实记得几个月前有过类似的问题,如果我没有弄错的话,在html标题部分添加以下行应该会有很大帮助

<!--[if lt IE 9]>
    <script src="https://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->


感谢您的回复,这看起来很有希望!很遗憾,我明天之前无法测试它。我会检查和更新,真的希望这将工作的html5shim没有真正的帮助,但无论如何谢谢。我更新了我的问题,如果你能看一看,看看你还有什么可以贡献的,我很乐意。你使用的是什么jQuery版本?老实说,我认为这是一个竞争条件,试着添加一个延迟,看看它是否有帮助,如果有,用适当的方法链接事件callbacks@HeddevanderHeide对一定是这样!你能给我一个答案吗?这样我就可以把它标记为正确的答案了?