zoukankan      html  css  js  c++  java
  • js 如何判断鼠标点击事件还是js代码调用

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>测试用户点击和js点击</title>
    <script src='jquery-1.10.2.min.js'></script>
    </head>
    <body>
    <button id="btn">Click</button>
    <script>
    // 来源:http://www.zhihu.com/question/31259853
    $(document).ready(function(){
    // 方式1
    a();
    // 方式2
    // b();
    // b2();
    // 方式3
    // c();
    // 方式1:btn.click.caller
    function a() {
    var btn = $('#btn');
    // 赋予事件
    btn.click(function() {
    console.log(btn.click.caller);
    if(null === btn.click.caller) {
    // 用户点击的
    alert('用户点击了');
    }else {
    // JS代码调的
    alert('JS点击了');
    }
    });
    btn.click();
    }
    // 方式2: e.originalEvent(jquery)
    function b(){
    var btn = $('#btn');
    // 赋予事件
    btn.click(function(event) {
    // event.originalEvent => MouseEvent
    if(event.originalEvent) {
    // 用户点击的
    alert('用户点击了');
    }else {
    // JS代码调的
    alert('JS点击了');
    }
    });
    btn.click();
    }
    // 方式2:pageX, clientX(原生js),也阔以是offsetX/layerX/screenX
    function b2(){
    // 原生js实现
    var btn2 = document.getElementById('btn');
    // DOM0级事件实现
    btn2.onclick = function(event){
    if (event.pageX){
    alert('用户点击了');
    }else{
    alert('JS点击了');
    }
    }
    btn2.click();
    }
    // 方式3: event.isTrusted IE9+/firefox支持
    function c(){
    var btn = $('#btn');
    // 赋予事件
    btn.click(function(event) {
    // event.originalEvent => MouseEvent
    if(event.isTrusted) {
    // 用户点击的
    alert('用户点击了');
    }else {
    // JS代码调的
    alert('JS点击了');
    }
    });
    btn.click();
    }
    });
    </script>
    </body>
    </html>

  • 相关阅读:
    获取exe和dll里面的资源
    [C++] 反编译器
    再一次利用with as 优化SQL
    编码指南:寻找科学中的艺术
    对手机支付安全机制的思考
    用adblock过滤页面上固定位置的悬浮窗
    git卡在Resolving deltas 100%的解决办法
    十字路口的程序员
    hdu 2555
    hdu 1864
  • 原文地址:https://www.cnblogs.com/yddzyy/p/5313261.html
Copyright © 2011-2022 走看看