更好的選擇,特別是因爲您使用jQuery,不使用內聯事件處理程序。
相反,使用HTML:
<div id="main_div"></div>
並使用此Javascript:
$(document).ready(function() {
$("#main_div").on("click", function() {
showSection("myTemplate.html");
});
});
這可能不是解決IE10您的問題,但它被認爲是更好的做法......並應工作始終與所有瀏覽器。
其他一些建議:
而不是使用.attr
設置的的onclick
屬性的,你不妨再使用on
:
$("#settingsButton").on("click", function() {
showSettingsMain();
});
雖然我不能完全確定是否會對問題有什麼影響。
儘管如此,這裏的attr
和prop
之間的差異的解釋 - .prop() vs .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並不顯眼。
來源
2013-04-05 19:41:34
Ian
我認爲onclick屬性名稱必須是完全小寫的。 – lib3d 2013-04-05 19:46:40
@ lib3d不,那是在Javascript中設置它的時候。在HTML中,這並不重要。雖然在某些HTML規範中,它被強制(或不) – Ian 2013-04-05 19:47:18
@TheJason - 你在談論哪個'onClick'?當你點擊div時,你確定showSection()是否正在執行?或者你指的是你的'.attr(「onClick」部分? – Ian 2013-04-05 19:54:08