javascript - 如何检查 jQuery int 变量是否已更改?
问题描述
我目前正在使用 jQuery 制作一个简单的滑块,我只显示变量默认情况下等于 1<ul>
的第一个元素。.slice((slideIndex - 1), slideIndex)
slideIndex
我有一个函数可以将 +1 添加到该值,但该值不会改变。
这是一个JSFiddle
这就是我尝试过的,为什么我的变量没有改变?如何检查它是否已更改?
解决方案
您的全局变量的值确实在您的函数中发生了变化,但您没有对<li>
s 的可见性状态做任何事情。和函数只在页面加载.hide()
后.show()
执行一次。
我准备了一个小替代脚本,希望能满足您的要求:
每次单击该按钮时,它都会执行以下操作:
- 它是您的 jquery 选择中
.hide()
的所有元素,<li>
$('#slider li')
- 然后它找到第
idx
-th<li>
元素并使其再次可见 (.show()
) - 这样做时它会
idx
增加到下一个值 - 最后附加
.click()
触发加载后的第一个按钮单击。
该构造(idx%len)
确保.eq()
- 位置仅限于现有值。
const ul=$('#slider li'),len=ul.length;
var idx=0;
$('#controlNext').click(ev=>ul.hide().eq((idx++)%len).show()).click()
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="controlNext">next</button>
<div id="slider">
<ul>
<li>slide1</li>
<li>slide2</li>
<li>slide3</li>
<li>slide4</li>
<li>slide5</li>
</ul>
</div>
脚本的稍微“更干净”的版本(更少的全局常量和变量)如下所示:
const ul=$('#slider li');
ul.idx=0
$('#controlNext').click(ev=>ul.hide().eq((ul.idx++)%ul.length).show()).click()
ul
现在是唯一的 global ,其中包含带有-collectionconst
的 jquery 对象。<li>
然后我直接使用它.length
的属性.idx
并向它添加一个额外的属性(而不是使用全局变量)。
推荐阅读
- node.js - 无论如何在node.js Crypto模块上获得用于ECDH的基点(P)?
- prestashop - Prestashop 上偶尔会收到 403 错误(前端和管理员)
- r - 如何约束字符串ggplots和交互生成的格式以在命名颜色向量中查找颜色?
- f# - 何时使用 F# 的 typedefof<'T> 与 typeof<'T>?
- python - 从一些 numpy 数组创建 DataFrame
- matlab - 如何找到最高峰的 x&y 坐标并将数据存储到变量中
- dynamic - 具有动态行高的 SSRS Tablix 控件
- regex - 在 mod_rewrite 中使用有效的正则表达式减少路径
- jquery - VBA 将数据输入到 Jquery 表中以在网站上提交搜索
- f# - 如何使用单个根对简单层次结构建模