如何在clickHandler函数jQuery中获取值

时间:2016-07-02 10:10:28

标签: javascript jquery ios

我正在尝试让我的网站适用于所有移动设备,包括iOS。 为了做到这一点,我必须使用这里建议的clickHandler函数How to replace click with touchstart on iOS devices

我需要获取一个值,但使用$ this我收到错误“未定义”。

<button class="open" value="{{ item.id }}">open</button>
var clickHandler = ('ontouchstart' in document.documentElement ? "touchstart" : "click");

$(".open").bind(clickHandler, function(e) {
    var id = ($this.attr('value'));
    $("#item" + id).addClass("visible");
});

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

请记住,this是对调用当前函数的成员的引用,在您的情况下是DOM元素(按钮)。 $()是jQuery构造函数。在this中包装$()意味着您将DOM元素转换为jQuery对象。 所以你需要的是:

this.getAttribute("value")

$(this).attr("value")

$this在您的上下文中没有任何意义,这就是您未定义的原因。