jquery 动态绑定bind()及模拟鼠标点击A链接

近来自觉前端有小小进步,幸而记之。

1、两个 css class 紧挨在一起
则在html元素中,要同时拥有这两个class,才能起作用

.block.db{
    background-image:url(/cas/images/hnhy/db.png);
}
<div class="block db"><div class="btn btn_bg" ></div></div>

2、动态绑定事件
动态绑定,可以节省代码。设想有一张列表,每行都有一个鼠标移入移出的事件处理,假如事先写好,代码得多出不少。用JS脚本动态绑定,则非常简洁:

    $(function(){
        $(".block div.btn").bind("mouseover",function(){
            $(this).removeClass("btn_bg").addClass("btn_bg_on");
        });

        $(".block div.btn").bind("mouseout",function(){
            $(this).removeClass("btn_bg_on").addClass("btn_bg");
        });
    });

这里有个问题,就是事件处理中,如何知道哪个元素触发了事件?如果是html中预先写好,当然可以将“this”参数传进去。动态绑定呢?酱紫:$(this)。

另外,这里说的是jquery 的 bind(),而不是标准 javascript的bind()。后者与apply,call一样,改变this指针,唯一不同的是,bind()不是立即执行,而是返回一个函数。详见拙作:Javascript中的apply、call、bind

3、代码模拟鼠标点击 a 链接
假设有

<a id="a" href=""  target="_blank" style="display:none;">jump</a>

则下面语句不起作用。是点击了a没错,可以触发其click事件,但并没有跳转:

$("#a").click();

原因是,我们在网页中点击链接,其实点击的是链接中的文字或图片什么的,而不是链接本身。因此,应该酱紫写:

$("#a")[0].click();

4、两个符合条件的选择器:

$("#firstmenu li:first,#firstmenu li:last").bind('mouseout', function () {
            if ($(this).attr("attr1") == '0') {
                $(this).removeClass("hy_mainmenu_active");
            }
});

转载于:https://www.cnblogs.com/leftfist/p/6808714.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值