jQuery .trigger("change") 不工作

新手上路,请多包涵

我不能让 .trigger("change") 工作。有人知道为什么吗?

 jQuery(document).ready(function () {

    jQuery("select[id='DROPDOWNID']").change(function () {

        var selectedIndex = jQuery("select[id='DROPDOWNID']").prop('selectedIndex');

        switch (selectedIndex) {
            case 0:
                hideVarforProspekt();
                break;
            case 1:
                hideOrdervarde();
                break;
            case 2:

                break;
            case 3:
                hideSektor();
                break;
        }
    });

    ** jQuery("select[id='DROPDOWNID']").trigger("change"); **

    function hideVarforProspekt() {
        jQuery("input[id='IDFROMSHAREPOINT']").closest('tr').hide();
    }

    function hideSektor() {
        jQuery("table[id='IDFROMSHAREPOINT']").closest('tr').hide();
    }

    function hideUppskOrder() {
        jQuery("input[id='IDFROMSHAREPOINT']").closest('tr').hide();
    }
});

原文由 Robin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 734
2 个回答

有时不需要使用触发器:

 // use just jQuery("#DROPDOWNID") instead
var select = jQuery("select[id='DROPDOWNID']");

// placing the handler in separate function
var changeHandler = function () {
    var selectedIndex = select.prop('selectedIndex');
    switch(selectedIndex) {
        case 0:
            hideVarforProspekt();
        break;
        case 1:
            hideOrdervarde();
        break;
        case 2:

        break;
        case 3:
            hideSektor();
        break;
    }
}

// cache your jQuery selectors. It's a good practice
// and improves the readability
select.change(changeHandler);

// triggering
changeHandler();

原文由 Krasimir 发布,翻译遵循 CC BY-SA 3.0 许可协议

应在调用 .trigger('change').change() 之前定义更改事件处理程序

以下是 2 个场景。

场景 1: 在定义之前调用 change 事件。

     $(document).ready(function()
    {
       $('#selector').change();   or  $('#selector').trigger('change');
       $('#selector').on('change', function(){

        });
    });

场景 2: 在调用它之前定义更改事件处理程序

$(document).ready(function()
{
    $('#selector').on('change', function(){

    });
    $('#selector').change();   or  $('#selector').trigger('change');
});

对我来说,问题在我使用场景 2 时得到解决。希望这可以帮助!!

原文由 Nilesh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题