javascript - jQuery 加载函数不适用于绑定(bind)

标签 javascript jquery

我在 jQuery 代码中绑定(bind)“加载”和“更改”。 我的目标是:在页面加载时根据逻辑禁用某些字段。

jQuery( document ).ready(function() {

    //Question 34.1
    jQuery('select#fever').bind('load change', function () {
        var drug_reaction = jQuery(this).val();
        if(drug_reaction== 1){            
            jQuery('input#fever_days').attr('disabled',false); 
            jQuery('select#character_of_fever').attr('disabled',false);     
            jQuery('select#evening_raise_of_temparature').attr('disabled',false);
            jQuery('select#night_sweats').attr('disabled',false);       
        }else{
            jQuery('input#fever_days').val("");
            jQuery('input#fever_days').attr('disabled',true); 

            jQuery('select#character_of_fever').val("");
            jQuery('select#character_of_fever').attr('disabled',true); 

            jQuery('select#evening_raise_of_temparature').val("");
            jQuery('select#evening_raise_of_temparature').attr('disabled',true); 

            jQuery('select#night_sweats').val("");
            jQuery('select#night_sweats').attr('disabled',true);       
        }
    });
 });

当我更改发烧下拉列表时,它起作用了。但是当页面加载时,我从数据库获取数据,并且此代码不起作用:

var drug_reaction = jQuery(this).val();
        if(drug_reaction== 1){            
            jQuery('input#fever_days').attr('disabled',false); 
            jQuery('select#character_of_fever').attr('disabled',false);     
            jQuery('select#evening_raise_of_temparature').attr('disabled',false);
            jQuery('select#night_sweats').attr('disabled',false);       
        }else{
            jQuery('input#fever_days').val("");
            jQuery('input#fever_days').attr('disabled',true); 

            jQuery('select#character_of_fever').val("");
            jQuery('select#character_of_fever').attr('disabled',true); 

            jQuery('select#evening_raise_of_temparature').val("");
            jQuery('select#evening_raise_of_temparature').attr('disabled',true); 

            jQuery('select#night_sweats').val("");
            jQuery('select#night_sweats').attr('disabled',true);       
        }

最佳答案

load 事件在从 URL 加载数据的元素上触发(例如整个页面、img 元素和 iframe 元素)。

选择元素不会加载外部数据,它的任何后代也不会加载外部数据。没有加载事件。

即使有,在 ready 事件触发时它也已经加载了。

将更改事件作​​为 ready 事件处理程序的一部分触发。

jQuery('select#fever')
    .bind('change', function () { ... })
    .trigger("change");

关于javascript - jQuery 加载函数不适用于绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159351/

相关文章:

javascript - 如果选择选项文本颜色为红色,则在选择该选项时在屏幕上显示警报

php - 为什么我的提交表单会将我带到我的 php 页面?

javascript - 为什么这段代码中的 for 循环在 Jquery Selector 之前执行?

javascript - 不允许我调整 IFrame 窗口的大小

javascript - 使用 ngtemplate-loader 将带有 webpack 的 html 文件加载到 Angular 应用程序中

JavaScript 只能运行一次?

javascript - 如何让 jQuery 聊天回复我

java - Android 中 Java 的自动点击 html 按钮

javascript - 选择多选元素时行为不一致

javascript - 预加载外部 javascripts、图像和 css 文件