使用layui,在layui.use里给不是form组件里的标签加onclick点击事件,终于找到一个能用的方法了,可以获取当前元素
很多时候用了layui,再layui.use里写一些jQuery的监听方法,都会不起作用,除非是在form组件,监听起来会方便一点,但是不是所有的组件都能用form,也不方便。
使用layui的时候,动态生成一段数据:
"<i class='fa fa-clock-o fa-1g' style='color: darkgrey; padding-left: 80px'> "+val.insertTime+"</i>
想给这个 标签加点击事件:
因为用的layui框架,整体上也用了它的一些规则:
layui.use(['layer', 'element', 'flow', 'form'], function () {
//carousel为轮播图所用
var layer = layui.layer,
form = layui.form,
element = layui.element;
var $ = layui.$;
var flow = layui.flow;
//下面举例的几个代码片段,都放在这里,放在layui.use的大括号里
});
大概是上面的样子,然后在尝试加事件的时候,尝试过标签里加“οnclick=xxx()”,配合外面的function发现不好用,看了下layui的元素监听事件,大抵也都是些规定好的元素,像一些普通的标签,好像没有给到监听事件。改为如下,依然不好用:
//i点不动啊
$("i").click(function (event) {
alert("a")
});
又查了一下资料,找到一段,xxx为定义在标签里的click事情:
window.xxx = function () {
alert("in");
console.log($(this))
}
可以进入,但是获取不到当前点击的元素啊。
最终找到了如下方法,可行:
$(document).on('click','i.fa-clock-o',function(){
layer.msg('hello');
console.log($(this).html())
});
可以实现自己的需求了。。。
或许,这不是使用layui最好的给动态标签加事件的方式,但是我目前找到的能用的方式吧,在此记录一下。
转载地址:
https://blog.csdn.net/capricornce/article/details/84311136