首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问GopherJS中的$(此)

访问GopherJS中的$(此)
EN

Stack Overflow用户
提问于 2018-05-30 19:30:08
回答 1查看 78关注 0票数 0

作为练习,我将单页应用程序从JavaScript转换为GopherJS。

在JS代码中,如下所示:

代码语言:javascript
复制
var list = $('.all-products .products-list');
list.find('li').on('click', function (e) {
  e.preventDefault();
  var productIndex = $(this).data('index');
  window.location.hash = 'product/' + productIndex;
})

在我的GopherJS转换中,我有以下内容:

代码语言:javascript
复制
list := jquery.NewJQuery(".all-products .products-list")
list.Find("li").On("click", func(e jquery.Event) {
e.PreventDefault()
// productIndex := jquery.NewJQuery(e.Target).Data("index").(float64)
// dom.GetWindow().Location().Hash = "product/" + productIndex
})

但我很难找到如何翻译$(this)jquery.NewJQuery(e.Target)似乎不返回li,而是返回li中的一个div

我的理解是,函数中的$(this)将作用域返回到外部jQuery项(li)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 13:30:31

对于$(this),您需要使用js.MakeFunc来访问this对象。与…有关的东西

代码语言:javascript
复制
list.Find("li").On("click", js.MakeFunc(func(this *js.Object, args []*js.Object) interface{} {
    e := dom.WrapEvent(args[0])
    e.PreventDefault()
    productIndex := jquery.NewJQuery(this).Data("index").(float64)
    dom.GetWindow().Location().Hash = "product/" + productIndex
    return nil
}))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50612165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档