我有以下代码...
<script>
if (document.getElementById("hidden").checked === true && document.getElementById("unlisted").checked === false) {
const currentBaseValue1 = $('#selectedBaseRelease').val();
const currentBaseValue = currentBaseValue1+'.hidden';
$(document).ready(function() {
$('#baseText').empty().append(currentBaseValue);
$('#selectedBaseRelease').on('click.select2', function(event) {
const currentBaseValue = $('#selectedBaseRelease').val();
$('#baseText').empty().load(currentBaseValue);
});
$('#baseText').empty().load(currentBaseValue);
});
}
</script>
在代码的其余部分中,前导 if 语句有所不同,const 声明也是如此。但是 $(document).ready(function() {...} 部分被一遍又一遍地重用,没有改变,所以我想将它表示为一个函数/子例程。此时总代码超过 400 行,但如果我能让这个函数/子例程工作的话,可以减少到不到 200 行。我已经尝试过这样做......
<script type="text/javascript">
function loadbaseText() {
$(document).ready(function() {
$('#baseText').empty().append(currentBaseValue);
$('#selectedBaseRelease').on('click.select2', function(event) {
const currentBaseValue = $('#selectedBaseRelease').val();
$('#baseText').empty().load(currentBaseValue);
});
$('#baseText').empty().load(currentBaseValue);
});
}
</script>
...最终,紧随其后的是...
<script>
if (document.getElementById("hidden").checked === true && document.getElementById("unlisted").checked === false) {
const currentBaseValue1 = $('#selectedBaseRelease').val();
const currentBaseValue = currentBaseValue1+'.hidden';
loadbaseText();
}
</script>
...但它不起作用。我是 HTML/Javascript 菜鸟,所以我确信这不是一个复杂的问题,但我似乎找不到正确的解决方案。有人可以帮忙吗?目前我最好的猜测是 const 的范围在某种程度上是不够的。
谢谢!
最佳答案
只需使用该值作为参数,如下所示
function loadbaseText(value) {
$(document).ready(function() {
$('#baseText').empty().append(value);
$('#selectedBaseRelease').on('click.select2', function(event) {
const currentBaseValue = $('#selectedBaseRelease').val();
$('#baseText').empty().load(value);
});
$('#baseText').empty().load(value);
});
}
像这样使用它:
if (document.getElementById("hidden").checked === true && document.getElementById("unlisted").checked === false) {
const currentBaseValue1 = $('#selectedBaseRelease').val();
const currentBaseValue = currentBaseValue1+'.hidden';
loadbaseText(currentBaseValue);
}
关于javascript - 如何在Javascript中使用子例程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51657376/