我想限制另一个代码,因为我不想使用全局变量checkbox
它只应在IIFE区域中可见。
我尝试这样做,但是当我点击checkbox
时,会弹出一个错误,这是合乎逻辑的,但我不知道如何正确地做到这一点。
我的代码如何运作?
激活input
,=>允许访问编辑。选择cell =>该文本属于apply
。更改文字,按 <table id="tableCinema" style="border-collapse: collapse;" border="1" >
<tr>
<th >Type</th>
<th >Name</th>
<th >Time</th>
</tr>
<tr>
<td >1</td><td >*</td><td >*</td>
</tr>
</table>
Change: <input id="changes" type="checkbox" name=""
onclick="eventsInTable()"><br>
Get text for change: <input id="changeText" type="text" name="" value="">
<button id="applyToChanges">Apply</button>
=&gt;文字改变了。
var targetElement;
var inputChangeText = document.getElementById('changeText');
var applyChanges = document.getElementById('applyToChanges');
applyChanges.addEventListener('click', function() {
if (targetElement) {
targetElement.textContent = inputChangeText.value;
}
}, false);
//change text
var changeText = function(e) {
inputChangeText.value = e.target.textContent;
targetElement = e.target;
}
//allow to change
function eventsInTable() {
var checkBoxChanges = document.getElementById('changes');
var table = document.getElementById('tableCinema');
if (checkBoxChanges.checked) {
table.addEventListener('click', changeText, false);
} else {
table.removeEventListener('click', changeText, false);
alert("You haven't access to change");
}
}
System.out.println(account.getaccountNum() + " : " + account.isValidLength(account.getaccountNum());
答案 0 :(得分:1)
如果你想从HTML属性中调用它,那么它必须是全局可用的,但是,它可以将你的全局污染保持在一个全局变量中,并将其他所有内容作为属性。
window.MyNamespace = (function() {
// your protected code
// return an object that has whatever you want to access
return {
eventsInTable: myLocalEventsInTableFunction
// other stuff
}
})();
然后通过命名空间调用您的处理程序。
Change: <input id="changes" type="checkbox" name=""
onclick="MyNamespace.eventsInTable()"><br>