おそらく私の問題を解決する非常に簡単な方法があります...
私の(簡略化された)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 経由でリダイレクトする必要があります。そうしないと、すぐにリダイレクトされるため、スワイプが機能しません。