Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中使用子例程?_Javascript_Html - Fatal编程技术网

如何在Javascript中使用子例程?

如何在Javascript中使用子例程?,javascript,html,Javascript,Html,我有以下代码 <script> if (document.getElementById("hidden").checked === true && document.getElementById("unlisted").checked === false) { const currentBaseValue1 = $('#selectedBaseRelease').val(); const currentBaseValue = c

我有以下代码

<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(document.getElementById(“隐藏”).checked==true和document.getElementById(“未列出”).checked==false){
const currentBaseValue1=$(“#selectedBaseRelease”).val();
const currentBaseValue=currentBaseValue1+'.hidden';
$(文档).ready(函数(){
$('#baseText').empty().append(currentBaseValue);
$('selectedBaseRelease')。在('click.select2',函数(事件){
const currentBaseValue=$('#selectedBaseRelease').val();
$('#baseText').empty().load(currentBaseValue);
});
$('#baseText').empty().load(currentBaseValue);
});
}
在代码的其余部分,前导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>

函数loadbaseText(){
$(文档).ready(函数(){
$('#baseText').empty().append(currentBaseValue);
$('selectedBaseRelease')。在('click.select2',函数(事件){
const currentBaseValue=$('#selectedBaseRelease').val();
$('#baseText').empty().load(currentBaseValue);
});
$('#baseText').empty().load(currentBaseValue);
});
}
…之后,最终

<script>
    if (document.getElementById("hidden").checked === true && document.getElementById("unlisted").checked === false) {
        const currentBaseValue1 = $('#selectedBaseRelease').val();
        const currentBaseValue = currentBaseValue1+'.hidden';
        loadbaseText();
    }
</script>

if(document.getElementById(“隐藏”).checked==true和document.getElementById(“未列出”).checked==false){
const currentBaseValue1=$(“#selectedBaseRelease”).val();
const currentBaseValue=currentBaseValue1+'.hidden';
loadbaseText();
}
…但它不起作用。我是一名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);
    }

只需将该值用作如下参数

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);
    }

确实调用了该函数吗?console.log是您的朋友尝试将
currentBaseValue1
currentBaseValue1
传递给您的
loadBaseText()
function as arguments.loadBasetext设置一个事件处理程序,然后退出-调用loadBasetext不会执行处理程序中定义的代码-这只会在页面完成加载时发生一次。我认为您要做的是在document.ready外部定义一个函数,从document.ready内部调用该函数,并调用该函数ame函数elsewhere@James,虽然您没有错,没有必要将其全部包含在内,但如果当前满足条件,则会立即调用回调。@OliverRadini,这是不正确的。
.ready()如果DOM已经加载,则
将立即调用其回调函数。是否确实调用了该函数?console.log是您的朋友尝试将
currentBaseValue1
currentBaseValue1
传递给您的
loadBaseText()
function as arguments.loadBasetext设置一个事件处理程序,然后退出-调用loadBasetext不会执行处理程序中定义的代码-这只会在页面完成加载时发生一次。我认为您要做的是在document.ready外部定义一个函数,从document.ready内部调用该函数,并调用该函数ame函数elsewhere@James,虽然您没有错,没有必要将其全部包含在内,但如果当前满足条件,则会立即调用回调。@OliverRadini,这是不正确的。
.ready()
将在DOM已加载时立即调用其回调。