JQ~trigger与bind,触发与绑定何先何后?

简介:

最近在做项目时,遇到一个需求,事实上就是表单联动的问题,单击单选框,下面的复选框联动,当第一次加载时,默认触发第一个单选框,如图:

之前的方法,没有完成我的要求,第一次加载时,公司被选中,再“角色”这块并没有触发指定事件,代码如下:

    //首次加载时,模拟Dept单击事件
    $("input[name=Dept]").first().trigger("click");
 
   //Dept单击事件
    $("input[name=Dept]").live("click", function () {
        var deptid = $("input[name=Dept]:checked").val();
        if (deptid == undefined)
            deptid = $("input[name=Dept]").first().val()
        $.get("/Common/PartialRole", { deptID: deptid }, function (data) {
            $("#roleList").html(data);
        });
    });

经过分析,找到了原因,JQ的代码为顺序执行,当你执行到trigger时,下面的live方法会没有执行,这时,你触发的click事件是空的,所以,当然程序首次加载时

只是单选按钮被选中,事件方法主体并没有被触发,其它不是没有触发,而是方法本身是空的

将trigger与live的顺序对调,效果实现

    //Dept单击事件
    $("input[name=Dept]").live("click", function () {
        var deptid = $("input[name=Dept]:checked").val();
        if (deptid == undefined)
            deptid = $("input[name=Dept]").first().val()
        $.get("/Common/PartialRole", { deptID: deptid }, function (data) {
            $("#roleList").html(data);
        });
    });
    //首次加载时,模拟Dept单击事件
    $("input[name=Dept]").first().trigger("click");

这时,再运行代码,程序执行到trigger代码段时,click方法已经被执行,这时,再进行trigger的触发,当然结果也就出来了。

小知识:JQ程序与其它程序执行的方式是相同的,代码自上而下运行,当然程序代码会更新你的条件语句改变执行的顺序,这是必然的,这个例子告诉我们,在使用trigger时,应该将它放到你触发的方法的下面,而不要放在上面!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:JQ~trigger与bind,触发与绑定何先何后?,如需转载请自行联系原博主。

目录
相关文章
|
存储 NoSQL Redis
Redis怎么删除某个目录下的数据
【7月更文挑战第4天】
295 0
|
Java API Android开发
|
存储 Python
顺序程序设计举例
在编程中,顺序程序设计是一种基本的程序设计方法,它按照语句或指令在程序中出现的顺序依次执行。这种程序设计方法相对简单,易于理解,尤其适合初学者入门。下面,我们将通过一个简单的例子来展示顺序程序设计的过程,并附上相应的代码。
127 0
|
iOS开发
【iOS 开发】从 xcarchive 到分发的 ipa
写这篇文章的起因是要更新 app ,然而上传 ipa 文件到 iTunes Connect 时发现体积巨大,是 App Store 显示的体积的好几倍,于是仔细研究了一下,各种体积的文件都是些什么。
1824 0
|
15天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
10天前
|
缓存 并行计算 PyTorch
144_推理时延优化:Profiling与瓶颈分析 - 使用PyTorch Profiler诊断推理延迟,优化矩阵运算的独特瓶颈
在2025年的大模型时代,推理时延优化已经成为部署LLM服务的关键挑战之一。随着模型规模的不断扩大(从数亿参数到数千亿甚至万亿参数),即使在最先进的硬件上,推理延迟也常常成为用户体验和系统吞吐量的主要瓶颈。
349 147
|
10天前
|
机器学习/深度学习 存储 缓存
92_自我反思提示:输出迭代优化
在大型语言模型(LLM)应用日益普及的今天,如何持续提升模型输出质量成为了业界关注的核心问题。传统的提示工程方法往往依赖一次性输入输出,难以应对复杂任务中的多轮优化需求。2025年,自我反思提示技术(Self-Reflection Prompting)作为提示工程的前沿方向,正在改变我们与LLM交互的方式。这项技术通过模拟人类的自我反思认知过程,让模型能够对自身输出进行评估、反馈和优化,从而实现输出质量的持续提升。
400 136
|
4天前
|
人工智能 移动开发 自然语言处理
阿里云百炼产品月刊【2025年9月】
本月通义千问模型大升级,新增多模态、语音、视频生成等高性能模型,支持图文理解、端到端视频生成。官网改版上线全新体验中心,推出高代码应用与智能体多模态知识融合,RAG能力增强,助力企业高效部署AI应用。
255 1