我正在尝试让我的网站适用于所有移动设备,包括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");
});
有什么建议吗?谢谢!
答案 0 :(得分:0)
请记住,this
是对调用当前函数的成员的引用,在您的情况下是DOM元素(按钮)。 $()
是jQuery构造函数。在this
中包装$()
意味着您将DOM元素转换为jQuery对象。
所以你需要的是:
this.getAttribute("value")
或
$(this).attr("value")
$this
在您的上下文中没有任何意义,这就是您未定义的原因。