Javascript IE8中未触发事件的jquery

Javascript IE8中未触发事件的jquery,javascript,jquery,internet-explorer-8,Javascript,Jquery,Internet Explorer 8,我制作这个jsfiddle是为了演示我的意思,但不幸的是,jsfiddle本身似乎不能与IE8一起工作,因此您需要在一个独立的页面中测试这个jsfiddle代码: 使用IE8,上述事件不会触发,绝对不会发生任何事情。甚至在函数中添加一个警报(“hi”)也没有任何作用;它没有被调用,而且控制台中没有报告错误 另一方面,当您有多个事件触发同一个函数时,是否需要e.preventDefault()来防止函数被多次执行,例如在所有情况下,.On(“touchstart click”… jQuery版本

我制作这个jsfiddle是为了演示我的意思,但不幸的是,jsfiddle本身似乎不能与IE8一起工作,因此您需要在一个独立的页面中测试这个jsfiddle代码:

使用IE8,上述事件不会触发,绝对不会发生任何事情。甚至在函数中添加一个警报(“hi”)也没有任何作用;它没有被调用,而且控制台中没有报告错误

另一方面,当您有多个事件触发同一个函数时,是否需要e.preventDefault()来防止函数被多次执行,例如在所有情况下,
.On(“touchstart click”…

jQuery版本1.8.3,所以我相信IE8是一款受支持的浏览器

ps.Im在浏览器模式IE8下使用IE10

编辑:我的简单测试页面在IE8中不起作用(对于我):

相关代码部分是

<script type="application/javascript">
$(document).ready(function () {
    $("body").on("click touchstart",".something",function(e) {
        $(this).text($(this).text() + " "+e.type);
        e.preventDefault();
    });
});
</script>

$(文档).ready(函数(){
$(“body”)。在(“单击touchstart”,“.something”,函数(e){
$(this.text($(this.text()+“”+e.type);
e、 预防默认值();
});
});

谢谢!

也许你应该先删除touchstart事件以检查它是否有效!IE8实际上不支持触摸操作

$(function () {
    $("body").on("click",".something", function(e) {
        $(this).text($(this).text() + " " + e.type);    
        //e.preventDefault();   
    });
});

您在脚本标记上使用了无效的
type
属性(
application/javascript
),请将其更改为
text/javascript
,或者干脆将其全部删除

这在IE8(真实版本)中运行良好


$(文档).ready(函数(){
$(“body”)。在(“单击touchstart”,“.something”,函数(e){
$(this.text($(this.text()+“”+e.type);
});
});

我没有投反对票,而是投票结果()看起来它在IE10的IE8兼容模式下对我有效,或者至少点击部分对我有效me@TomHeard谢谢,谢谢。奇怪,是的,它是在JSFIDLE的嵌入模式下工作的。我想在这里发布之前在JSFIDLE中测试它,但是不能让JSFIDLE在ie8中工作来测试它,哈哈。很高兴知道这个黑客。无论如何,奇怪的是它在IE8中,我复制到小提琴中的简单测试文件不起作用。只是提醒一下。模拟IE8并不等同于实际的IE8。我过去遇到过这样的问题,如果我在IE8模式下运行代码,它会起作用,但在实际的IE8中,它不会。它在JSB中也起作用为touchstart注册事件侦听器并不会阻止IE8working@Phil-就是我的想法。顺便问一下,jquery(移动)点击事件也一样吗?如果我打开(“单击点击”),这会在非移动设备/浏览器上引发错误吗?(例如,如果我没有在非移动设备上包括jquery移动库,而只包括移动设备的库)“如果有道理的话……”马丁不知道,我从来没用过。试试看:)
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script>
$(document).ready(function () {
    $("body").on("click touchstart",".something",function(e) {
        $(this).text($(this).text() + " "+e.type);
    });
});
</script>