一个更好的选择是不使用内联事件处理程序,特别是因为您使用的是 jQuery。
相反,请使用以下 HTML:
<div id="main_div"></div>
并使用这个 Javascript:
$(document).ready(function () {
$("#main_div").on("click", function () {
showSection("myTemplate.html");
});
});
这可能无法解决您使用 IE10 的问题,但它被认为是更好的做法......并且应该与所有浏览器保持一致。
其他一些建议:
与其使用.attr
来设置 的onclick
属性#settingsButton
,不如on
再次使用:
$("#settingsButton").on("click", function () {
showSettingsMain();
});
虽然我不确定这是否会对问题产生任何影响。
attr
尽管如此,这里是关于和prop
- .prop() 与 .attr()之间区别的解释
此外,如果您需要准确指定要使用的 URL,即使是<div>
逐个地,您也可以使用data-*
属性。假设这是您的 HTML:
<div class="trigger-div" data-target-url="myTemplate.html"></div>
<div class="trigger-div" data-target-url="myTemplate2.html"></div>
然后你可以使用:
$(document).ready(function () {
$(".trigger-div").on("click", function () {
var $this = $(this);
var target_url = $this.attr("data-target-url"); // or $this.data("target-url")
showSection(target_url);
});
});
单击第一个 div 将使用“myTemplate.html”,而单击第二个将使用“myTemplate2.html”。
这样,您的数据将嵌入到 HTML 中,而您的 Javascript 则不显眼。