jQuery vs Javascript点击

0 javascript jquery onclick

我已经阅读了很多主题如何处理Javascript的onclick vs Jquery; s .click(),但我无法弄清楚如何使用jQuery传递参数.

第一个选项 - Javascript,HTML

The HTML

<input type="button" onclick="doAction(<?=$id?>,'order');" />
Run Code Online (Sandbox Code Playgroud)

所以在JS我能做到

function doAction(id,type){

 //do something here

}
Run Code Online (Sandbox Code Playgroud)

第二个选项 - jQuery,HTML

The HTML

<input type="button" id="trigger" />
Run Code Online (Sandbox Code Playgroud)

所以jQuery变成了

$("#trigger").click(function() {

   //do something here

 });
Run Code Online (Sandbox Code Playgroud)

我是否必须做类似的事情(在这种情况下,我如何知道id和type的值?)

  $("#trigger").click({id: "???", type: "????"}, other_function);

  function other_function(event){
     id = event.data.param1;
     type = event.data.param2;
   }
Run Code Online (Sandbox Code Playgroud)

我是否必须使用"传递参数"

  HTML
  <input type="hidden" id="id" value="<?=$id?>" />
  <input type="hidden" id="type" value="order" />

  jQuery

   $("#trigger").click(function(){
      var id = $("#id").val();
      var type = $("#type").val();
      //do something

   });
Run Code Online (Sandbox Code Playgroud)

我想避免使用onclick(),因为我已经读过它应该避免使用.我只需要一个合适的方法来传递参数,就像我使用onclick()一样.

Adi*_*dil 6

您可以使用数据将data()传递给事件.

现场演示

 <input type="hidden" id="id" data-idatt="123" />
 <input type="hidden" id="type" value="order" />

 $("#trigger").click(function(){
    var id = $("#id").data("idatt").val();
 });
Run Code Online (Sandbox Code Playgroud)