不确定这是否是touche.js的工作方式

时间:2013-11-23 17:26:38

标签: javascript jquery

我对使用touche.js感兴趣,我通过teamTreehouse每周节目听到过。

我是否错误地理解了它的使用和实施?

你是否只是在touche.js之前添加一个jQuery,然后调用该函数?

<!-- jQuery -->
<script type="text/javascript" src="/path/to/jQuery.js"></script>

<!-- somewhere before the rest of your JavaScript code -->
<script type="text/javascript" src="/path/to/touche.js"></script>

// applying a click event to one element

Touche(document.querySelector('#myButton')).on('click', handleClick);

// or to multiple at once

Touche(document.querySelectorAll('.myButtons')).on('click', handleClicks);

// or with jQuery

$('.myButtons').on('click', handleClicks);

我的经历如下, 我为你自然点击的所有元素添加了一个类。 (即链接,提交按钮等),在touche.js库之前添加jQuery,然后调用,

$('.myButtons').on('click', handleClicks);

但是,我在控制台中收到'errorUncaught ReferenceError:handleClicks is defined defined'错误。这导致我搜索handleClicks方法,我认为这是缺少的并且自然导致错误...但令我惊讶的是我发现没有handleClicks方法。任何见解都会很棒!

谢谢,所以我认为handleClicks函数会是这样的吗?

function handleClicks(){
  $('a').click();
}

我猜选择器会填满我想要影响的所有项目吗?

1 个答案:

答案 0 :(得分:1)

免责声明: 我没有使用过该库,未对其进行测试,答案基于其文档。

触摸工作不需要jQuery。所以为了澄清文档,为了在没有jQuery的情况下使用它,你可以按如下方式调用它,

Touche(document.querySelector('#myButton')).on('click', handleClick);

Touche(document.querySelectorAll('.myButtons')).on('click', handleClicks);

使用jQuery,

$('.myButtons').on('click', handleClicks);

在所有情况下,handleClicks都是由您定义的函数。

function handleClicks(){
/*do stuff*/
}

或者你可以在上面任何一个例子中内联定义一个匿名函数,

$('.myButtons').on('click', function(){/*do stuff*/});

修改

根据您的上一次评论和编辑,我假设您需要在所有锚点上应用touche.js,因此请尝试以下操作,

$('a').on('click', function(e){
      e.preventDefault();
      /*do stuff*/
      /**/
      /*if you want to visit the href of the anchor then you can do*/
      window.location.href=$(this).attr("href");


    });

Touche(document.querySelectorAll('a')).on('click', function(e){
  e.preventDefault();
  window.location.href=$(this).attr("href");
});