JS event 自定义属性的妙用

本文介绍了JavaScript中Event对象的应用及如何通过自定义属性实现特定功能。通过两个实例展示了如何利用event对象及其属性来捕获点击事件并读取自定义属性的值。

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

最近接触JS比较多  mark个event的用法

阿里妈妈的有个页面 采用的ajax实现的 其中使用到event

我们可以通过自定义的属性 来达到一些功能 例如下面的a 标签中的 siteid 就是自定义的标签

<html>
<script type="text/javascript">
 function test(event){
   alert(event)
   var ev=!event?window.event:event;
   alert(ev);
   alert(ev.srcElement.sitename)
 
 }
</script>


<a href="javascript:void(0)" siteid="whut" id="baba" onclick="test()">aaaa</a>
</html>

 

我们还可以这样

<html>
<script type="text/javascript">
document.onclick=function(e){
 var ev=!e?window.event:e;
 var node=ev.srcElement;
 if(node.getAttribute("siteid")=="whut"){
  alert("do some ajax here");
 }
}

</script>


<a siteid="whut" id="baba" >aaaa</a>
</html>

<think>好的,我现在需要帮助用户解决关于Layui框架中如何使用自定义属性的问题。用户提到他们想查找相关的教程和示例,所以我得先回忆Layui的文档和相关引用内容。 首先,根据用户提供的引用内容,特别是引用[1]、[4]中提到了lay-verify和lay-filter这些属性。用户的问题是关于自定义属性的使用,可能需要包括如何定义、应用这些属性,以及相关的验证规则或事件处理。 接下来,我需要确认Layui中常见的自定义属性有哪些。比如lay-verify用于表单验证,lay-filter用于事件过滤器,还有lay-submit用于表单提交。这些都是Layui特有的属性,用来增强表单的功能。 然后,用户可能需要具体的示例,比如如何自定义验证规则。根据引用[1],使用layui.form.verify方法可以添加自定义验证规则,然后在input标签中通过lay-verify属性引用这些规则。例如,验证手机号的格式,或者两次密码输入是否一致。 此外,lay-filter属性在事件处理中也很重要,比如在表单提交或按钮点击时,通过lay-filter来绑定事件。引用[4]提到lay-filter用于事件的精确匹配,类似于选择器,这在表单或模块交互中会用到。 还要考虑用户可能的实际应用场景,比如注册表单中的自定义验证,或者表格操作中的属性绑定。需要确保示例代码的正确性,并符合Layui的语法。比如在自定义验证函数中,如何处理输入值,如何返回错误提示。 另外,用户可能需要知道如何将多个验证规则组合使用,比如同时验证必填和自定义规则,这时候lay-verify属性可以用竖线分隔多个规则名。 最后,需要检查是否有遗漏的部分,比如是否需要提到其他自定义属性,或者相关的模块如form模块的渲染问题。确保回答覆盖了主要的使用方法,并引导用户参考官方文档进行更深入的了解。</think>### Layui框架中自定义属性的使用教程 在Layui框架中,自定义属性主要用于表单验证、事件过滤和组件交互。以下是具体实现方法及示例: --- #### 一、自定义表单验证属性 通过`lay-verify`属性实现自定义规则,需结合`layui.form.verify()`方法定义逻辑。 1. **定义验证规则** ```javascript layui.use('form', function(){ var form = layui.form; form.verify({ // 自定义手机号格式验证 phone: function(value, item){ if(!/^1\d{10}$/.test(value)){ return '手机号格式错误'; } }, // 验证两次密码一致性(数组形式) repass: [/(.+){6,12}$/, '密码长度需6-12位'], //基础规则 checkPass: function(value){ if($('#password').val() !== value){ return '两次密码不一致'; } } }); }); ``` 2. **应用属性** ```html <input type="text" lay-verify="required|phone"> <input type="password" id="password" lay-verify="required|repass"> <input type="password" lay-verify="required|checkPass"> ``` *说明:`|`符号可组合多个规则,`required`为内置必填规则[^1][^4]。* --- #### 二、事件过滤属性 `lay-filter` 用于精确绑定事件,常见于表单提交、按钮操作: ```html <!-- 表单绑定提交事件 --> <form class="layui-form" lay-filter="formDemo"> <button lay-submit lay-filter="submitBtn">提交</button> </form> <script> layui.form.on('submit(submitBtn)', function(data){ console.log(data.field); // 获取表单数据 return false; // 阻止默认提交 }); </script> ``` *该属性可定位到具体组件,避免事件冲突[^4]。* --- #### 三、扩展应用场景 1. **表格操作属性** ```html <table lay-filter="tableDemo"> <button lay-event="edit">编辑</button> </table> <script> layui.table.on('tool(tableDemo)', function(obj){ if(obj.event === 'edit'){ /* 编辑逻辑 */ } }); </script> ``` 2. **动态渲染控制** 通过`lay-attr`动态设置属性(需配合模板引擎): ```html <div lay-attr="{{ d.isAdmin ? 'title=管理员' : '' }}"></div> ``` --- #### 注意事项 1. 使用自定义属性后需执行`form.render()`重新渲染表单 2. 事件绑定需在`layui.use()`回调函数内完成 3. 复杂逻辑建议参考[Layui官方文档](https://www.layui.com/doc/) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值