jQuery .data()
似乎在 IE10 上被破坏了。
下面的代码在 Chrome 和 FF 上运行良好,但会触发错误
SCRIPT438: Object doesn't support property or method data
在 IE10 中。
知道为什么/如何让它在 IE10 下工作吗?
$(document).ready(function() {
$('body').on("click", ".clickme", function(){
parent = $(this).parents(".container");
html = $(parent.data('my-target')).html();
$('#result').html(html);
});
});
#result {
margin: 15px;
}
#second, #fourth {
display: none;
}
.clickme {
margin: 5px;
padding: 10px;
}
<script src="https://code.jquery.com/jquery-2.1.4.js"></script><div class="container" data-my-target="#second">
<div class="clickme" id="first">Click me</div>
<div id="second">Hello World</div>
</div>
<div class="container" data-my-target="#fourth">
<div class="clickme" id="third">Cliquez-moi</div>
<div id="fourth">Bonjour !</div>
</div>
<div id="result">
</div>
在 jsbin 上查看:http://jsbin.com/hovuwequvu/edit?html,css,js,output
最佳答案
parent
是一个糟糕的(隐含的全局)变量名。它与 window.parent
属性冲突:
$(document).ready(function() {
$('body').on("click", ".clickme", function(){
parent = $(this).parents(".container");
// ^^ You are attempting to write to the window.parent property here
html = $(parent.data('my-target')).html();
$('#result').html(html);
});
});
将其更改为更合适的名称并将其声明为变量:
$(document).ready(function() {
$('body').on("click", ".clickme", function(){
var parentContainer = $(this).parents(".container");
var html = $(parentContainer.data('my-target')).html();
$('#result').html(html);
});
});
关于javascript - jQuery/IE10-SCRIPT438 : Object doesn't support property or method 'data' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944012/