![](/img/trans.png)
[英]How can I pass variable from the onclick of a button to the javascript code?
[英]How can I create an universal function from this code and how can I call it via “onclick” button action
我有四个<button>
,每个都有一个特定的ID( b1
, b2
, b3
, b4
),单击它时,它将带我到具有ID的特定<div>
( marina1
, marina2
, ecc
.. )。 有没有一种方法可以不编写四次此功能(一个功能对应一个特定的按钮)?
就像创建一个以两个参数作为输入的通用变量一样(但我不知道如何将这两个参数传递给函数)?
这是代码:
<script>
$(document).ready(function (){
$("#b1").click(function (){
$('html, body').animate({
scrollTop: $("#marina1").offset().top
}, 2000);
});
});
</script>
为此,您可以先在按钮和div上使用通用类对它们进行分组。 然后,您可以使用data
属性来存储button
元素上的相关信息,您可以在单击处理程序中读取这些信息,以toggle()
相关的div
。 尝试这个:
$('.btn').click(function() { $($(this).data('target')).toggle(); });
.marina { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button class="btn" id="b1" data-target="#marina1">Marina 1</button> <button class="btn" id="b2" data-target="#marina2">Marina 2</button> <button class="btn" id="b3" data-target="#marina3">Marina 3</button> <div class="marina" id="marina1">Marina 1 details...</div> <div class="marina" id="marina2">Marina 2 details...</div> <div class="marina" id="marina3">Marina 3 details...</div>
仅供参考,这种技术被称为“不要重复自己”或“干燥”。
是的,还有另一个您可以做到。 您可以向所有id元素添加一个通用类。 试一试。
<html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <style> .click { cursor: pointer } </style> </head> <body> <span class="click" id="1">1</span><br> <span class="click" id="2">2</span><br> <span class="click" id="3">3</span><br> <span class="click" id="4">4</span> <script> $(document).ready(function() { $(".click").on('click', function() { var id = this.id; alert(id); // code to be executed }); }); </script> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.