這是代碼的一個非常簡化的版本來解釋我的問題。jquery對象不能作爲全局變量工作
HTML:
<input type="radio" name="enableDisableBox" id="radioDisable" checked="checked" />
Disable
<br />
<input type="radio" name="enableDisableBox" id="radioEnable" />
Enable
<br />
<input type="text" id="txtUserInput" disabled="disabled" />
的JavaScript:
var txtInputObj2 = $("#txtUserInput");
function init1() {
var txtInputObj1 = $("#txtUserInput");
$("input[name='enableDisableBox']:radio").change(function() {
if ($("#radioEnable").attr("checked"))
txtInputObj1.removeAttr("disabled").focus();
else
txtInputObj1.attr("disabled", "disabled");
});
}
function init2() {
$("input[name='enableDisableBox']:radio").change(function() {
if ($("#radioEnable").attr("checked"))
txtInputObj2.removeAttr("disabled").focus();
else
txtInputObj2.attr("disabled", "disabled");
});
}
$(document).ready(function() {
init1();
//init2();
});
如果我運行INIT2功能,它並沒有給我任何的錯誤,但不啓用或禁用任何文本框我。
如果您注意到,txtInputObj1在init1函數中定義,並且txtInputObj2被定義爲全局變量。
關於如何使jQuery選擇器對象全局的任何建議?
在DOM準備好之前,您正在執行'$(「#txtUserInput」)'*'。該元素尚不存在。 –
你在哪裏聲明你的jQuery?我見過一些人在html腳本的底部刪除了jQuery(通常在'