我的網站的每個頁面都有一組不同的jQuery特效以及使用ajax提交的表單。我遇到了一個空的jQuery選擇器阻止其他javascript運行的問題。例如:空的jQuery選擇器打破了腳本的其餘部分
// site.js
$(document).ready(function() {
function changeText() {
$("#div1").html("Test 1");
$("#div2").html("Test 2");
}
$("#button1").click(changeText());
$("#button2").click(changeText());
});
// page1.html
<script src="/static/jquery.js"></script>
<script src="/static/site.js"></script>
<div id="div1">Div 1</div>
<input type="button" value="Change" id="button1"> <!-- Works //-->
// page2.html
<script src="/static/jquery.js"></script>
<script src="/static/site.js"></script>
<div id="div2">Div 2</div>
<input type="button" value="Change" id="button2"> <!-- Doesn't work //-->
我到目前爲止的解決方案是爲每個頁面創建單獨的javascript文件,但必須有其他方法。有任何想法嗎?我是否真的需要在if $("selector").length
調用中包裝每個選擇器,以便腳本不會中斷?
感謝您重申jQuery自動執行此操作。事實證明,問題在於對'document.getElementById()'的調用破壞了一切。我切換到一個jQuery調用,一切都很好。謝謝! – 2012-01-28 19:11:44