Javascript for loop scope takes last variable

前端 未结 4 1703
清酒与你
清酒与你 2020-12-22 02:09

This works:

  var toggler = function(most){
    var open = $(\'#toggle_\' + most + \' .minus\').is(\':visible\');

    if(open){
      $(\'#toggle_\' + most          


        
4条回答
  •  -上瘾入骨i
    2020-12-22 02:52

    it is because of wrong use of a closure variable in a loop

    In this case since you are iterating through an array, you can use $.each()

    var t = ['mostviewed','mostshared','mostrecent'];
    $.each(t, function(_,most){
        $('#toggle_' + most).click(function(){ toggler(most) });
    })
    

提交回复
热议问题