2016-12-29 36 views
2

我想要console.log一个已经从其他2个对象组合的对象。我第一次CONSOLE.LOG(allObjects),它的工作原理,我看到:Object.assign结果在r.Event对象

对象{名: “大卫”,wineResults: “[{” ID “:158020,” 名 “:” 安蒂诺里 Tignanello 2013" , “U ...” 清单 “:[]},” 零售 “:空,” 年份酒 “:{” 清单 “:[]}}]”}

$(document).on('submit', '.add-item-form', function(event) { 
    event.preventDefault(); 

    if (event.type === 'keypress' && event.which === 13 || event.type === 'submit') { 

     var name = $('#item-input').val(); 
     var usersObject = { 
      "name": name 
     }; 


     var searchArray = $('#search-results-array').val(); 
     var searchArrayObj = { 
      "wineResults": searchArray 
     }; 

     var allObjects = Object.assign(usersObject, searchArrayObj); 
     console.log(allObjects); // This one works great. 

     favDropDownItem(allObjects); 
     FavoritesList(allObjects); 

     $('#item-input').val(''); 
    } 

然后在下面的代码中,我试图将allObjects传递给我创建的链接,它出现在下拉菜单中。

function favDropDownItem(allObjects) { 
    var output = ''; 

     output += "<a href='javascript:void(0)' class='dropbtn' onclick='myDropdown()'>Favorites</a>"; 
     output += "<div class='dropdown-content' id='myDropdown'>"; 
     output += "<p class='nameLink'>" + name + "</p>"; 
     output += "<a href='#'>sample</a>"; 
     output += "</div>"; 

     $('li.dropdown').html(output); 


     $(".nameLink").on('click', function(allObjects) { 
      console.log(allObjects); // This one results in r.Event {originalEvent: MouseEvent, type: "click", target: 
      //p.nameLink, currentTarget: p.nameLink, relatedTarget: null…} 
     }); 
    } 

}); 

当我点击.nameLink,我希望得到的是出现在第一的console.log相同的数据,而是我看到这一点:

r.Event {originalEvent:的MouseEvent,类型: “点击”,目标:p.nameLink, currentTarget当前:p.nameLink,relatedTarget:空...}

得到任何帮助。

回答

0

改变事件参数的名称

 $(".nameLink").on('click', function(e) { 
      console.log(allObjects); //now you can get correct out put here 
     });