尝试使一个事件依赖于另一个事件,并使用 jquery 个自定义事件传递数据

Trying to make an event depend on another event and data is passed along using jquery custom events

对于这个问题,我想根据复选框是否被选中来传递数据。数据来自 .on() 第二个参数。

我想做这样的事情。我知道这真的很糟糕。我不确定数据如何工作以及何时使用 .trigger()

 $(document).on('justData', function(e, data){
    console.log(data);
 })
$('.justData').on('click', function(){
    var insert
    dataobj ={
        "mike" : 'mikevalue',
        "john" : 'johnValue'
    }
    $("#checkThis").on('change', function(e, data){
        if(this.checked){
            insert = dataobj.mike
        }else{
            insert = dataobj.john
        }
    })

    $(this).trigger('justData', insert)
})

如果选中该框,我想插入 "mikevalue",如果未选中,我想插入 "johnvalue"。

我正在学习如何使用中介。我想那是你做 $emitter = $({}) 的时候,所以我想分开事件。当用户点击 $(.justData) 我会有 $({}).trigger("Ischecked") 之类的东西我很困惑。如果有人可以告诉我如何使用 $emitter .trigger() .on() 将动态数据传递给不同的事件,那就太好了。

你走在正确的轨道上。这是 jQuery API Docs 给出的用于处理自定义事件的简单明了的示例:

$( "#foo" ).on( "custom", function( event, param1, param2 ) {
  alert( param1 + "\n" + param2 );
});
$( "#foo").trigger( "custom", [ "Custom", "Event" ] );

还稍微清理了你的代码:

$('body').on('justData', function(e, data){
   console.log(data);
});

$('.justData').on('click', function(e){
   var insert = "",
       $checkbox = $('#checkThis'),
       data = {
       "mike" : 'mikevalue',
       "john" : 'johnValue'
   };
   if($checkbox.prop('checked')){
       insert = data.mike;
   } else {
       insert = data.john;
   }
   $('body').trigger('justData', insert);
});