原生js 与 jQuery对比

1、原生JS与jQuery操作DOM对比 : https://www.cnblogs.com/QianBoy/p/7868379.html

2、比较jQuery与JavaScript的不同功能实现 : http://www.cnblogs.com/QianBoy/p/7868291.html

3、原生JS与jQuery事件绑定对比:

  原生js : onclick绑定的事件具有可覆盖性 解除绑定方法: btn1.onclick = null ; //去掉绑定的事件

       addEventListener 具有 叠加性         btn2.removeEventListener('click', showMsg, false); //去除绑定

       (attachEvent,这个是兼容ie的,等效于addEventListener,区别 请搜索

       js中触发标签绑定的事件函数(非标签事件触发) : .click () 参考:https://blog.csdn.net/zsytechnology/article/details/78128054

  jQuery : .click() 解除绑定: unbind .click()与on的区别 参考:https://www.cnblogs.com/sqh17/p/7746418.html

       bind(推荐使用on) 解除绑定: unbind

       on                       off

       js中触发标签绑定的事件函数(非标签事件触发) : trigger() http://www.w3school.com.cn/jquery/event_trigger.asp


js 触发 dom事件:

说明:有的情况,我们需要js去触发dom事件。如,下载功能,通过js生成的DOM对象,只能通过js触发;另外一种情况,有联动关系的表单,其中一个表单A选择了特定值。需要导致另外一个表单B的值改变,并且B改变要执行他所在的事件函数【这种情况还是会经常碰到的,如果不通过js触发对方的事件。就需要在A改变时,把B的事件函数上的代码重新写一遍。如果可以js直接触发就可以了】。

1、点击事件:

  • js原生方法:dom.click()
  • jquery方法:

2、select 的 change事件:【所有的js触发事件,都可以用下面这这种方式实现】

  • js原生方法:通过 dispatch 方法触发【具体的还在研究】https://blog.csdn.net/iteye_17835/article/details/105111032
    <select  name="mysel" onchange="A(this)" >
      <option value="1">11</option>
      <option value="2">22</option>
      <option value="3">33</option>
    </select>
    
    <button onclick="runfun()">
      手动触发select的change事件
    </button>
    var sel = document.getElementById('sel');
    
    sel.addEventListener("change", A(sel), false);
    
    function A(obj){
      alert(obj.value);
    }
    
    //  手动触发 change 事件
    function runfun(){
      sel.value = 2;
      var myEvent = new Event("change");  // 生成一个模拟用户触发事件的对象
      sel.dispatchEvent(myEvent);  //  在test对象上触发 这个模拟出来的事件
    }
  • jquery方法:trigger方法,触发select的change事件
    // JS给select赋值
    $("#selectChange").val("3");
    // 触发change事件
    $("#selectChange").trigger("change");