js中事件绑定,$("body").on("click")与$("").click()区别

本文介绍了在jQuery中如何为动态生成的元素绑定事件处理程序。element.click不适用于动态元素,推荐使用on方法。文章还强调了on方法前的元素必须在DOM加载时存在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

element.click这种写法不支持给动态元素或者样式重新绑定事件。

支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.7之后就不推荐使用了。现在主要用on,使用on的时候也要注意,on前面的元素也必须在页面加载的时候就存在于dom里面。动态的元素或者样式等,可以放在on的第二个参数里面。

### Vue.js 中通过 `$refs` 设置 `el-table` 表格滚动位置 在 Vue.js 开发中,当需要操作 DOM 或者组件内部的状态时,可以通过 `$refs` 来访问子组件或原生 DOM 节点。对于 Element Plus 提供的 `<el-table>` 组件来说,设置其滚动条的位置是一个常见的需求。 #### 方法实现 以下是基于 Vue 3 和 Element Plus 的解决方案: 1. **绑定 `ref` 属性** 需要在模板中的 `<el-table>` 上绑定 `ref` 属性以便后续能够通过 `$refs` 进行访问。 2. **调用 `setScrollTop` 方法** 如果目标是将表格滚动到顶部,则可以直接调用 `scrollBarRef.setScrollTop(0)`[^1]。需要注意的是,此方法依赖于组件内部的具体实现逻辑,因此可能因版本不同而有所变化。 3. **处理异步渲染问题** 当使用条件渲染指令(如 `v-if`)控制表格显示隐藏时,可能会遇到无法立即获取到 `$refs.table` 的情况。这是由于 Vue 的响应式机制决定的——DOM 更新存在延迟。此时应借助 `$nextTick()` 确保 DOM 已经完成更新后再执行相关操作[^3]。 下面是完整的代码示例: ```javascript <template> <div> <!-- 绑定 ref --> <el-table v-if="flag" ref="elTableRef"> ... </el-table> <button @click="handleScrollToTop">滚动至顶部</button> </div> </template> <script> export default { data() { return { flag: true, }; }, methods: { handleScrollToTop() { this.$nextTick(() => { const tableInstance = this.$refs.elTableRef; if (tableInstance && tableInstance.$refs.scrollBarRef) { // 调用 setScrollTop 方法使表格回到顶部 tableInstance.$refs.scrollBarRef.setScrollTop(0); } }); }, }, }; </script> ``` 上述代码片段展示了如何安全地利用 `$refs` 对象来操控 `<el-table>` 实现滚动回顶功能,并妥善解决了潜在的同步/异步问题。 --- #### 注意事项 - 若未正确初始化或者销毁阶段尝试访问不存在的 `$refs` 成员变量会抛出错误,请务必确认对应元素已被挂载至页面上再做进一步动作。 - 不同框架版本间 API 可能略有差异,请参照官方文档核实具体细节[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值