我用sweetalert.min.js(弹出框插件)生成了一个弹出框,生成的中间部分代码
<p style="display: block;">
<div class="myouhui">
<ul>
<li><span>不参加促销优惠</span><span><input name="aoao" type="radio" id="checkbox-3-12"><label for="checkbox-3-12"></label></span></li>
<li><span>满200元减20</span><span><input type="radio" name="aoao" id="checkbox-3-15"><label for="checkbox-3-15"></label></span></li>
<li><span>满300元减15</span><span><input type="radio" name="aoao" id="checkbox-3-16"><label for="checkbox-3-16"></label></span></li>
</ul>
</div>
</p>
我想现在用jquery来操作生成的这段代码的样式,如鼠标点击某个li会加一个边框,如下:
问题是,这个弹出框本来就是由js生成的,我直接用jquery去操作样式不起作用。谁遇到过这问题呀?
使用on事件
动态插入的用on事件
$(document).on('click', '你要操作的标签名或class', function() {
//
});
用On可以在未生成的Dom上绑定事件
说下知识点,对动态添加的元素(未来元素)绑定事件需要通过事件代理来处理,jquery新版本的事件代理用on方法,原声js的话自己也可以实现事件代理,就是绑定事件在现有的元素里,通过事件冒泡来处理事件。
$('<div><ul><li></li><li></li><li></li></ul></div>').find("li").on("click", function(){});
早上好.
$(document).on('click', '.myouhui li', function() {
// $(this)指向的就是li
// 处理li
});
$('.myouhui').on('click', 'li', function() {
$(this).css('border','1px solid #f00')
});