Javascript 根据事件的结果,分离事件以在其他函数中执行操作

Javascript 根据事件的结果,分离事件以在其他函数中执行操作,javascript,jquery,events,object,Javascript,Jquery,Events,Object,感谢您抽出时间阅读此文章。我正在学习OOP、模块和构造函数,这些东西对我来说太先进了,所以我一直在努力写下面的代码 我正在尝试分离事件,以便根据从GetAmount返回的值执行函数addTwoNums和addThreeNums。我知道speek方法没有为此设置。你能做些什么来设置一些东西来修复它吗。我太迷路了 $(document).ready(function(){ $emitter = $({}) console.log($emitter); $("#amountItems").on('c

感谢您抽出时间阅读此文章。我正在学习OOP、模块和构造函数,这些东西对我来说太先进了,所以我一直在努力写下面的代码

我正在尝试分离事件,以便根据从GetAmount返回的值执行函数addTwoNums和addThreeNums。我知道speek方法没有为此设置。你能做些什么来设置一些东西来修复它吗。我太迷路了

$(document).ready(function(){
$emitter = $({})
console.log($emitter);

$("#amountItems").on('change', function(){
    var amountchosen = $("#amountItems option:selected").val();
    $emitter.trigger("amountUpdate", amountchosen);
});

var GetAmount = (function(){
    this.mode = "";
    $emitter.on("amountUpdate", function(e, val){
        if(val == 2){
            alert(2)
            this.mode = 'addTWoNumbers'
        }else if(val == 3){
            alert(3)
            this.mode = 'addThreeNumbers'
        }else if(val== 4){
            alert(4)
            this.mode = 'addFourNumbers'
        }
    })
    return  {
        speek : function(){
            console.log(this.mode);
        }

    }
})();
// I think these methods should be apart of a module
function addTwoNums(){
    GetAmount.speek(); //I guess i could instantiate an object 
  //here like (if (twonumbers = new GetAmount())) it should return addTWoNumbers 
  //so now i could do operation pertaining to 2 numbers
    //do some function when 2 is chosen
}

function addThreeNums(){
    //do some function when 3 is chosen
}

});
另外,我从另一个来源获得了$emitter=${}部分,但我想了解它的工作原理。因为哪里把$emitter变成空的 这意味着我们可以将它用于某种类型的占位符来触发事件。它就像我们制作一个对象只是为了对其执行操作,但它不包含任何内容

我知道这些概念来自于pub/sub类型的模式。我想我正在尝试制作一个pub/sub

HTML:


语法错误是什么?您不应该有:after return。@Barmar Aha当然:-。
<div class="select labelOuter">
    <!-- <p>How many Items would you like to add</p> -->
    <select name="" id="amountItems" data-chosen ="0">
        <option selected default disabled value="">Amount of items</option>
        <option  value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>

    </select>
</div>