我有一个非常简单的功能,似乎在Chrome,Firefox和Safari中运行良好,但在IE中它正在破碎。我实际上是想把它作为Windows 8 Web App加载,但是从我读过的内容来看,它使用了更宽容的IE10版本来输出。
假设我有一个<div>
(或<a>
href
...我也尝试了这样做了),就像这样:
<div onClick="showSection('myTemplate.html');"></div>
这是我的功能:
function showSection(loca) {
$("#optionView").show();
$("#bookMenu").hide();
$("#optionView").load('settings/'+loca);
$("#settingsButton").attr("onClick","showSettingsMain();");
}
为什么这不会在IE中专门工作?
答案 0 :(得分:4)
更好的选择,特别是因为你使用的是jQuery,不使用内联事件处理程序。
相反,请使用此HTML:
<div id="main_div"></div>
并使用此Javascript:
$(document).ready(function () {
$("#main_div").on("click", function () {
showSection("myTemplate.html");
});
});
这可能无法解决IE10的问题,但它被认为是更好的做法......并且应该与所有浏览器保持一致。
其他一些建议:
您可以再次使用.attr
,而不是使用onclick
来设置#settingsButton
的{{1}}属性:
on
虽然我不确定这会对问题产生什么影响。
尽管如此,这是对$("#settingsButton").on("click", function () {
showSettingsMain();
});
和attr
- .prop() vs .attr()
此外,如果您需要准确指定要使用的网址,即使基于每{ - 1}},您也可以使用prop
属性。说这是你的HTML:
<div>
然后你可以使用:
data-*
点击第一个div将使用“myTemplate.html”,而点击第二个div将使用“myTemplate2.html”。
这样,您的数据就会嵌入到您的HTML中,但您的Javascript却不引人注目。
答案 1 :(得分:0)
你正在使用jQuery错误,在这里:
首先,将事件绑定到div,您需要为其添加一个类或ID:
<div id="myEvent"></div>
然后,绑定事件:
$('#myEvent').on('click', showSection( 'myTemplate.html') );
你的功能:
function showSection(loca) {
$("#optionView").show();
$("#bookMenu").hide();
$("#optionView").load('settings/'+loca);
}
试试这种方式。