将JavaScript传送到jQuery以进行轮播

qqruza

我正在尝试将旋转木马的JavaScript转换为jQuery。

我的代码是:

document.querySelectorAll('.indicators')[0].style.color = 'red';
document.querySelector('.toggler-prev').style.display = 'none';
document.addEventListener('postchange', function(event){
  document.querySelectorAll('.indicators')[event.lastActiveIndex].style.color = 'white';
  document.querySelectorAll('.indicators')[event.activeIndex].style.color = 'red';
  var togglerPrev = document.querySelector('.toggler-prev');
  var togglerNext = document.querySelector('.toggler-next');
  if (event.activeIndex === 3) {
  togglerPrev.style.display = 'block';
  togglerNext.style.display = 'none';
  } else if (event.activeIndex === 0) {
  togglerNext.style.display = 'block';
  togglerPrev.style.display = 'none';
  } else {
  togglerNext.style.display = 'block';
  togglerPrev.style.display = 'block';
  }
});

我转移到了jQuery:

$('.indicators').css('color','#000');
$('.toggler-prev').css('display','none');
$(window).on('postchange', function(event){
  $('.indicators')[event.lastActiveIndex].css('color','#FFF');
  $('.indicators')[event.activeIndex].css('color','#000');
  var togglerPrev = $('.toggler-prev');
  var togglerNext = $('.toggler-next');
  if (event.activeIndex === 3) {
  togglerPrev.css('display','block');
  togglerNext.css('display','none');
  } else if (event.activeIndex === 0) {
  togglerNext.css('display','block');
  togglerPrev.css('display','none');
  } else {
  togglerNext.css('display','block');
  togglerPrev.css('display','block');
  }
});

但是它没有按我预期的那样工作,例如,切换器没有被隐藏,指示器的颜色没有被改变。

这是有效的JS示例:http : //codepen.io/anon/pen/eJYWQO

还有我的jQuery替代品:http : //codepen.io/anon/pen/eJYWrq

有人可以帮我编辑第二个Codepen吗?提前致谢。

马克

您忘记在某个地方提到您正在使用AngularJS和onsenUI;)

您的问题是,jQuery事件没有属性activeIndexlastActiveIndex,但是可以在中找到它们event.originalEvent

另外,就像@stalin在回答中所说的那样,您的指标不是jQuery对象,因此您不能css在它们上调用-function。将这些内容包装在另一个$()甚至更好的jQuery构造eq函数中,请使用-function从数组中返回jQuery包装的对象。

然后,为了优化某些可读性,您可能需要考虑hideandshow函数,而不是更改CSS属性display


总的来说,您的代码应如下所示

$('.indicators').css('color', '#fff');
$('.indicators').eq(0).css('color', '#000'); // highlight the first indicator
$('.toggler-prev').hide();

$(window).on('postchange', function(event) {

    //store the indices for readability
    var activeIndex = event.originalEvent.activeIndex;
    var lastActiveIndex = event.originalEvent.lastActiveIndex;

    $('.indicators').eq(lastActiveIndex).css('color', '#FFF');
    $('.indicators').eq(activeIndex).css('color', '#000');

    var togglerPrev = $('.toggler-prev');
    var togglerNext = $('.toggler-next');

    if (activeIndex === carousel.getCarouselItemCount() - 1) {
        togglerPrev.show();
        togglerNext.hide();
    } else if (activeIndex === 0) {
        togglerNext.show();
        togglerPrev.hide();
    } else {
        togglerNext.show();
        togglerPrev.show();
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将JavaScript传送到jQuery以进行轮播

来自分类Dev

是否可以将“脚本”传送到“ xz”以进行即时压缩,而不是文件或设备?

来自分类Dev

是否将ENV变量传送到回形针?

来自分类Dev

如何将HTML传送到lynx?

来自分类Dev

将凭证传送到 Invoke-WebRequest

来自分类Dev

使用javascript以纯HTML格式将表单字段值传送到下一页

来自分类Dev

自动将运动线传送到运动水带?

来自分类Dev

将原始文件名传送到FTP端点

来自分类Dev

如何将wget结果传送到后续的curl发布?

来自分类Dev

如何将SQL传送到R的dplyr?

来自分类Dev

如何将awk的结果传送到netcat?

来自分类Dev

将十六进制字符传送到awk

来自分类Dev

将选定的按钮值传送到下一页

来自分类Dev

将文本行传送到linux命令中

来自分类Dev

通过SSH将文本文件传送到telnet

来自分类Dev

将变量值从安装程序传送到卸载程序

来自分类Dev

在将strace传送到vim后如何保持stty的理智?

来自分类Dev

将 zip 文件从 SailsJS 后端传送到 React Redux 前端

来自分类Dev

如何使用函数将异或门的输出传送到与门中?

来自分类Dev

将弹出消息传送到特定位置

来自分类Dev

将多个命令传送到 bash,管道行为问题

来自分类Dev

使用jQuery将javascript数组发送到php

来自分类Dev

如何将通过机架上传的文件直接传送到S3?

来自分类Dev

通过登录到machineA将SCP文件从machineB传送到machineA

来自分类Dev

将命令的STDOUT一次传送到多个程序(重击)

来自分类Dev

如何将NodeJS调试器通过隧道传送到Vagrant框?

来自分类Dev

将数据从文件传送到Sails.js中的呈现页面

来自分类Dev

如何将一个FLWOR传送到另一个?

来自分类Dev

Gitlab CI将文件传送到远程服务器(rsync)

Related 相关文章

热门标签

归档