0

以下是我的javascript,我一直在尝试显示某些div,并且在执行函数后,div应该自行隐藏,但我遇到了这个问题,在同一个函数中,两者都不起作用,喜欢先显示,然后在一段时间后显示隐藏那个 div 但是当我把显示事件和隐藏分开时它工作得很好。请让我知道如何修改以下代码,以便在处理结果后隐藏该 div

 function jq(input)
    {


    if (input == 'abc')
    {
    $("#show").show(1000);

        document.getElementById('sele').options.length = 0;

    $('#sele').append('<option value="test">Testing</option>').updateSelect();

    $("#show").hide(1000);

    }
}

 <div id="show" > <img  src="ajax-loader.gif" width="16" height="16" /> </div>
4

2 回答 2

1
$("#show").show(1000, function() {

    $('#sele').empty(); // instead of: document.getElementById('sele').options.length = 0;

    $('#sele').append('<option value="test">Testing</option>').updateSelect();

    // make a delay using setTimeout()
    setTimeout(function() {

      $("#show").hide(1000);

    }, 500);

});

完整代码

function jq(input) {
    if (input == 'abc') {
        $("#show").show(1000, function() {
            $('#sele').empty();
            $('#sele').append('<option value="test">Testing</option>').updateSelect();
            setTimeout(function() {
                $("#show").hide(1000);
            }, 500);
        });
    }
}
于 2012-09-14T18:36:43.643 回答
0

我认为您在以下行中遇到错误(检查控制台):

document.getElementById('sele').options.length = 0;

length是只读的,这不是清空选择的方法。由于您使用的是 jQuery,因此您可以这样做:

$('#sele').empty();
于 2012-09-14T18:36:04.087 回答