【问题标题】:Carry values from an attribute on multiple elements to another attribute将值从多个元素的属性传递到另一个属性
【发布时间】:2015-09-05 19:20:59
【问题描述】:

我有这个 JavaScript 可以检测浏览器是否支持触摸事件,然后为每个具有点击事件的元素设置一个触摸事件:

function isTouchEnabled() {
    if ('ontouchstart' in window) {
    var all = document.querySelectorAll('[onclick]');
        for (var i = 0; i < all.length; i++) {
            all[i].setAttribute('ontouchstart', car);
            var car = all[i].getAttribute('onclick');
        }
    }
}

这一直有效到这一点:all[i].setAttribute('ontouchstart', car);

通过这个位,我的目的是将属性值从点击事件传递到触摸事件,但这不起作用,因为触摸事件的属性值最终是未定义的。谁能解决这个问题?

【问题讨论】:

  • 您设置的值必须是一个字符串,如car()
  • 我不太明白
  • 这可能是因为car变量是在all[i].setAttribute('ontouchstart', car);之后定义的

标签: javascript attributes getattribute


【解决方案1】:

试试这个:

function hitMe() {
    alert('I am hit !');
}
function isTouchEnabled() {
  if ('ontouchstart' in window) {
    var all = document.querySelectorAll('[onclick]');
    for (var i = 0; i < all.length; i++) {
      var car = all[i].getAttribute('onclick');
      all[i].setAttribute('ontouchstart', car);
    }
  }
}
isTouchEnabled();
&lt;div onclick="hitMe()"&gt;Click Me!&lt;/div&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多