jquery - 如何使用 jQuery 重新分配 Javascript 事件?

标签 jquery

当我在 js 中记录点击处理程序时,(var clickHandler = button.onclick;) 它会按预期给出以下内容:

clickHandler:function () {
    alert("onclick - original onclick handler");
}

但是,当我记录 jQuery 单击处理程序 (var clickHandler = jQuery('#button').click;) 时,我得到:

  clickHandler:function (a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)}

为什么有区别?如何获取该函数的句柄,以便我可以将其重新分配给另一个事件,例如。鼠标按下?

(我需要重新分配一个我无法控制的现有 js 事件,因此它还没有使用 jQuery 添加)。

    <input type="text" name="name_input" id="name_input" />
    <a href="#" id="button">Click</a>
    <script>
        var input = document.getElementById("name_input");
        var button = document.getElementById("button");
        input.onchange = function(event) {
            alert("Change");
        };

        //reassign onclick to onmousedown

        button.onclick = function() {
            alert("onclick - original onclick handler");
        };

        //reassign onmousedown handler
        var clickHandler = button.onclick;
        // var clickHandler = jQuery('#button').click;
        console.log('clickHandler:' + clickHandler);

        button.onmousedown = clickHandler;
    </script>

最佳答案

我想你想要这个:

var clickHandler = jQuery('#button')[0].click;

jQuery([selector]) 返回一个数组。

关于jquery - 如何使用 jQuery 重新分配 Javascript 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22600140/

相关文章:

javascript - 通过 jquery、ajax 和 django 发布图像时出现内部服务器错误

jquery - 检查点击的元素是否有类

javascript - 从数组中删除特定字符

jquery - 当 jQuery 的 $(".foo li") 返回一个对象作为结果时,调用的对象的类型到底是什么?

Javascript 和 Jquery 初学者必备知识?

javascript - 等待表单提交时循环的返回

javascript - 向现有 href 添加额外文本

javascript - jquery(或纯js)模拟按下回车键进行测试

jquery .text 作为条件

javascript - 如何使代码中高度的像素值动态化?