0

可能有一种非常简单的方法可以解决我的问题...

我的(简化的)HTML:

<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">
            <a id="user-link" href="#" data-user-id="47">..</a>
            <a id="post-link" href="#" data-post-id="8">..</a>
        </div>
    </div>
</div>

现在,我需要一种简单的方法来确定点击了哪个链接,这样我就可以重定向到不同的页面。不知何故,使用 Swiper API 中给定的“onSlideClick”函数是不可能的。

我一直在尝试这样的事情:

onSlideClick: function() {
    if ($(this).attr('id') == 'user-link') {
        var userId = $('a').data('user-id');
        $.redirect('user.php', { userId: userId });
    }
    if ($(this).attr('id') == 'post-link') {
        var postId = $('a').data('post-id');
        $.redirect('post.php', { postId: postId });
    }
}

问题:Firebug 告诉我

onSlideClick: function() {
    console.log($(this).attr("id"));
}

未定义。

我必须通过 JavaScript 重定向,否则我的滑动将不起作用,因为我会立即被重定向。

4

1 回答 1

1

您可以尝试从事件目标中获取单击的元素:

onSlideClick: function(swiper, e) {
  var clicked = $(e.target);
  var id = clicked.attr('id');
  if (id == 'user-link') {
    var userId = clicked.data('user-id');
    $.redirect('user.php', { userId: userId });
  }
  if (id == 'post-link') {
    var postId = clicked.data('post-id');
    $.redirect('post.php', { postId: postId });
  }
}
于 2014-12-04T21:38:01.200 回答