有没有办法把这些脚本结合起来
Is there any way to combine these scripts?
我正在尝试学习jQuery,但是我不知道如何使一个div从其他div中单独滑下来,而不为每个div制作单独的脚本。每当我试图将其变成一个脚本时,div在同一时间做相同的幻灯片。
<script>
$(document).ready(function(){
$("#flip").click(function(){
$("#panel").slideToggle("slow");
});
});
</script>
<script>
$(document).ready(function(){
$("#flip1").click(function(){
$("#panel1").Toggle("slow");
});
});
</script>
<script>
$(document).ready(function(){
$("#flip2").click(function(){
$("#pane2").Toggle("slow");
});
});
</script>
<style>
#panel, #flip {
padding: 5px;
text-align: center;
background-color: #e5eecc;
border: solid 1px #c3c3c3;
}
#panel {
padding: 50px;
}
</style>
</head>
<body>
<div id="flip">Click to slide up panel</div>
<div id="panel">Hello world!</div>
<div id="flip1">Click to slide up panel</div>
<div id="panel1">Hello world!</div>
<div id="flip2">Click to slide up panel</div>
<div id="pane2">Hello world!</div>
</body>
谢谢你的帮助。
尝试在回调中使用this
值。首先,将id="flip#"
更改为class="flip"
,将id="panel#"
更改为class="panel"
。然后:
$(document).ready(function(){
$(".flip").click(function(){
$(this).next('.panel').slideUp("slow");
});
});
这将获取被点击元素的next
兄弟元素,然后向上滑动。
可以做到。以最简单的方式,您可以删除多个document.ready
&把所有的代码放在一个document.ready
中。
除此之外,您可以创建单个类并添加属性data-item
&传递想要向上滑动的div的id。
在click
函数中使用$(this)
指向jquery对象。
希望这段代码对你有帮助
JS
$(document).ready(function() {
$(".clickItem").click(function() {
var getItem =$(this).attr('data-item')
$("#"+getItem).slideUp("slow");
});
});