Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带参数的jQuery淡入淡出函数_Javascript_Jquery_Html_Css_Parameter Passing - Fatal编程技术网

Javascript 带参数的jQuery淡入淡出函数

Javascript 带参数的jQuery淡入淡出函数,javascript,jquery,html,css,parameter-passing,Javascript,Jquery,Html,Css,Parameter Passing,我试图使这个jQuery函数允许使用参数,或者以某种方式使它能够处理列表中的每个元素 我有一个函数,它对列表中的第一个元素执行我想要的操作,但对其他元素不起作用。我想知道是否有一种方法可以将参数传递到jQuery函数中,这样我就可以创建函数,这样我就可以让它与多个元素一起工作 $(文档).ready(函数(){ $(“#f2”)。单击(函数(){ $(“#f2”).fadeOut() $(“#f1”).delay(375).fadeIn() }); $(“#f1”)。单击(函数(){ $(“#

我试图使这个jQuery函数允许使用参数,或者以某种方式使它能够处理列表中的每个元素

我有一个函数,它对列表中的第一个元素执行我想要的操作,但对其他元素不起作用。我想知道是否有一种方法可以将参数传递到jQuery函数中,这样我就可以创建函数,这样我就可以让它与多个元素一起工作

$(文档).ready(函数(){
$(“#f2”)。单击(函数(){
$(“#f2”).fadeOut()
$(“#f1”).delay(375).fadeIn()
});
$(“#f1”)。单击(函数(){
$(“#f1”).fadeOut();
$(“#f2”).delay(375.fadeIn();
});
});

  • 肯塔基大坝防洪闸门打开 今天 乱数假文。。。
  • 另一项 今天 乱数假文。。。
  • 另一项 今天 乱数假文。。。

创建一个函数并包装代码,以将选择器和延迟作为参数传递

function setAnimation(firstSelector, secondSelector, delayNum) {
  $(secondSelector).click(function() {
    $(secondSelector).fadeOut()
    $(firstSelector).delay(delayNum).fadeIn()
  });
  $(firstSelector).click(function() {
    $(firstSelector).fadeOut();
    $(secondSelector).delay(delayNum).fadeIn();
  });
} 
在脚本上,只需按如下所示调用多个函数:

$(document).ready(function() {
  setAnimation("#f1", "#f2", 375);
});
试试这个它很好用


这是您的更新代码切换到类

如果始终针对相同的选择器,则不需要传递选择器

您还需要向函数添加一些
prev
next
逻辑,否则单击的任何
f2
f1
元素都会触发页面上的所有逻辑

$(文档).ready(函数(){
$(“.f2”)。单击(函数(){
$(this.fadeOut();
$(this).next('.f1').delay(375.fadeIn();
});
$(“.f1”)。单击(函数(){
$(this.fadeOut();
$(this.prev('.f2').delay(375.fadeIn();
});
});

  • 肯塔基大坝防洪闸门打开 今天 乱数假文。。。
  • 另一项 今天 乱数假文。。。
  • 另一项 今天 乱数假文。。。

您使用的是ID,而不是类。这总是会引起问题。将
f1
f2
更改为类。不应该有多个id相同的元素。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li>
    <div class="direction-r">
      <div class="flag-wrapper">
        <span class="flag">Kentucky Dam Flood Gates Open</span>
        <span class="time-wrapper">
                    <span class="time">Present Day</span>
        </span>
      </div>
      <div class="f2">
        <img src="images/Top-KY-Dam.jpg" />
      </div>
      <div class="desc f1">
        Lorem Ipsum...
      </div>
    </div>
  </li>

  <li>
    <div class="direction-r">
      <div class="flag-wrapper">
        <span class="flag">Another Item</span>
        <span class="time-wrapper">
                    <span class="time">Present Day</span>
        </span>
      </div>
      <div class="f2">
        <img src="images/Top-KY-Dam.jpg" />
      </div>
      <div class="desc f1">
        Lorem Ipsum...

      </div>
    </div>
  </li>

  <li>
    <div class="direction-r">
      <div class="flag-wrapper">
        <span class="flag">Another Item</span>
        <span class="time-wrapper">
                    <span class="time">Present Day</span>
        </span>
      </div>
      <div class="f2">
        <img src="images/Top-KY-Dam.jpg" />
      </div>
      <div class="desc f1">
        Lorem Ipsum...

      </div>
    </div>
  </li>


</ul>
$(document).ready(function() {
    $(".f2").on('click', function() {
    $(".f2").fadeOut();
    $(".f1").delay(375).fadeIn();
  });
  $(".f1").on('click', function() {
    $(".f1").fadeOut();
    $(".f2").delay(375).fadeIn();
  })
})