nir9 / itemslide

JavaScript Touch Carousel Library with Zero Dependencies
https://itemslide.org
MIT License
647 stars 85 forks source link

While Sliding item a tag is clicked #81

Open AH72KING opened 6 years ago

AH72KING commented 6 years ago

I have structure in which li has an image which is surronded by an a tag, upon slide item is clicked how can i prevent that

<div class="carousel" id="scrolling">
<ul>
    <li>
      <div class="product-thumbnail">
          <a href="deal-x5"><img src="270.png"></a>
      </div>
    </li>
<ul>
</div>
nir9 commented 5 years ago

If I understand correctly you mean what happens when you mousedown and drag on a link inside a slide, you can disable this behavior by calling preventDefault on the mousedown event on the link element, see the following example : https://jsfiddle.net/rg0cq8Lf/3/

Maybe I'll add an option to the library that will does this for all links in the carousel..

fwebdev commented 5 years ago

Unfortunatly the solution is not working. The Link is been called when you start sliding on the Link. You don't see any effect, because the Link goes to '#'. So you stay on the same Page.

I forked the jsFiddle and added real links to the href: https://jsfiddle.net/7uj1cer9/

PurHur commented 5 years ago

This is a browser wide topic. What do you use to test? Welcome in the world of browsers and their implementation :tada:

I made quick tests that works for me in chrome. Feel free to test it in all browsers and versions.

$("a").on("mousedown touch click", function(event) {
  event.preventDefault();
});
PurHur commented 5 years ago

Quick idea: I think a other "hotfix" will work better for you: create an onDragStart function wich sets https://developer.mozilla.org/de/docs/Web/CSS/pointer-events on all links to none. After onDragEnd you remove that css command.