如何在单击函数时调用javascript方法?

如何在单击函数时调用javascript方法?,javascript,Javascript,我正在尝试使用slick carousel(),他们有一个方法slickNext(),它会触发旋转木马中的下一张幻灯片 现在,我的html文件如下所示: <div class="slick-slider"> <div><%= image_tag "1.jpg"%></div> <div><%= image_tag "1.jpg"%></div> <div><%= image_tag

我正在尝试使用slick carousel(),他们有一个方法
slickNext()
,它会触发旋转木马中的下一张幻灯片

现在,我的html文件如下所示:

<div class="slick-slider">
  <div><%= image_tag "1.jpg"%></div>
  <div><%= image_tag "1.jpg"%></div>
  <div><%= image_tag "1.jpg"%></div>
</div>

<i class="fa fa-angle-right"></i>


<script type="text/javascript">
$("fa-angle-right").click(function(e) {
    $("fa-angle-right").slickNext();
});
</script>

<script type="text/javascript">
    $(document).ready(function(){
        $('.slick-slider').slick({
            dots: true
        });
    (jQuery)});
</script>

$(“右外角”)。单击(函数(e){
$(“fa直角”).slickNext();
});
$(文档).ready(函数(){
$('.slick slider')。slick({
圆点:对
});
(jQuery)});

然而,这是行不通的,我真的不明白为什么。感谢您,fa angle right是一个类型选择器。它将选择
元素

您的斜体元素(为什么使用斜体元素?!)是类的成员
fa angle right
,因此您需要使用以
字符开头的字符

$(".fa-angle-right")

此选择器不能正确
$(“fa角度右侧”)
,因为这意味着它将搜索名为的元素

我认为您需要的是类选择器,它必须以点开头:

<script type="text/javascript">
$(".fa-angle-right").click(function(e) {
    $(".fa-angle-right").slickNext();
});
</script>

$(“.fa直角”)。单击(函数(e){
$(“.fa直角”).slickNext();
});

因此jQuery选择器的工作方式与CSS选择器非常相似:)

因此您按下一个按钮,试图让滑动滑块移动到下一张幻灯片。处理
单击的行需要
,然后滑块处理
slickNext()
,因此应如下所示:

<script type="text/javascript">
$(".fa-angle-right").click(function(e) { // Added a '.'
    $(".slick-slider").slickNext(); // Switched to '.slick-slider'
});
</script>

$(“.fa角度右”)。单击(函数(e){//添加了一个“.”
$(“.slick slider”).slickNext();//切换到“.slick slider”
});
试试这个:

$("fa-angle-right").slick('slickNext');

事实上,罗斯的部分答案是正确的。应该是:

<script type="text/javascript">
$('.fa-angle-right').click(function() {
    $('.fa-angle-right').slick('slickNext');
});
</script>

$('.fa右角')。单击(函数(){
$('.fa角右').slick('slickNext');
});
使用
.slick('slickNext')
而不是
.slickNext()
应该可以做到以下几点:

<script type="text/javascript">
$(".fa-angle-right").click(function(e) { 
    $(".slick-slider").slick('slickNext'); 
});
</script>

$(“.fa角度右”)。单击(函数(e){
$(“.slick滑块”).slick('slickNext');
});

您必须首先调用slick对象,然后传递参数“slickNext always”。

另外,您不希望click方法调用
$('.slick slider')。slickNext()
?我将点添加到fa角度右侧,但仍然不起作用。但是,我正在尝试在单击图标时触发下一张幻灯片,那么为什么我需要调用幻灯片本身的操作呢?抱歉,我不太了解JavaScription。没关系,我也是一名新手。您正在单击图标,但希望滑块移动到next slide。所以我只是添加了这个,并删除了整个fa angle right脚本?我会留下一个答案,假设我认为它应该如何工作……不确定它是否是旧版本,但目前,您调用类似这样的slick方法:$('.slick slider').slick('slickNext'))我从来没有真正使用过SLIK,只是从一个通用的jQuery /JS立场回答了这个问题,并回答了上面提到的问题。请考虑编辑您的帖子,以添加更多关于您的代码所做的解释以及为什么它会解决这个问题。一个答案几乎只包含代码(即使它正在工作)。通常不会帮助OP理解他们的问题。我想将此标记为答案,只是因为文档中提到了这一点……但我无法让它使用此代码。请添加一个解释,说明这是如何回答问题的。不要只删除一段代码。此函数是否有类似调用func的回调当幻灯片完全移动时单击。我认为后更改是您需要的。//在幻灯片更改后单击$('.your element')。在('afterChange',function(event,slick,currentSlide,nextSlide){console.log(“change occurrent”);});查看slick网站上的事件()这就是下一步的回调,即使我点击箭头,我也需要回调,只有当我实际调用上述方法时才需要回调。不,如果你以编程方式调用幻灯片更改,你将需要创建自己的回调。应该不会太难,只要启动计时器,在调用事件和dis时,不断检查当前图像是否已更改计时器的姿势。
<script type="text/javascript">
$(".fa-angle-right").click(function(e) { 
    $(".slick-slider").slick('slickNext'); 
});
</script>
$('.fa-angle-right').slick('slickNext');