组合jquery代码的多个实例



我目前正在使用下面的方法来切换多个div,但我想知道是否可以将所有这些组合成一个?

<script type="text/javascript">
$(document).ready(function() {
    $("#tvehicle").click(function() {
        $("#div7").toggle();
    });
});
</script>
<script type="text/javascript">
$(document).ready(function() {
    $("#tvehicle2").click(function() {
        $("#vehicle2").toggle();
    });
});
</script>
<script type="text/javascript">
$(document).ready(function() {
    $("#tproperty").click(function() {
        $("#div8").toggle();
    });
});
</script>
<script type="text/javascript">
$(document).ready(function() {
    $("#thproperty1").click(function() {
        $("#hproperty1").toggle();
    });
});
</script>
<script type="text/javascript">
$(document).ready(function() {
    $("#thproperty2").click(function() {
        $("#hproperty2").toggle();
    });
});
</script>
<script type="text/javascript">
$(document).ready(function() {
    $("#thproperty3").click(function() {
        $("#hproperty3").toggle();
    });
});
</script>
    <script type="text/javascript">
$(document).ready(function(){
 $("#tvehicle").click(function(){
  $("#div7").toggle();
 });
$("#tvehicle2").click(function(){
 $("#vehicle2").toggle();
});
//AND SO ON...
});
</script>

您可以将所有函数放在一个文档中。ready函数。如上所述:)。。。此外,您不必为每个函数都有新的<script>标记。

向所有div添加一个类,例如:

<div id="tvehicle2" class="toggleable"> ... </div>

那么你可以做:

$(".toggleable").click(function () {
    $(this).toggle();
});

如果您不想(或不能)将类添加到所有可切换项中,您也可以在选择器中组合多个id引用:

$('#tvehicle1, #tvehicle2, #tv3').click(function () {
    $(this).toggle();
});

您可以使用数据属性来指定要切换的元素。示例

$(document).ready(function(){
var toggler = function() {
   var toToggle = $(this).data().toggleId; //Id of an element to toggle
   $("#" + toToggle).toggle();        
};
$(".togglers").on("click", ".toggler", toggler);
});

HTML结构

<div class="togglers">
<div class="toggler" data-toggle-id="to-toggle-1">Click to toggle 1</div>
<div class="to-toggle" id="to-toggle-1">I will be toggled #1</div>
<div class="toggler" data-toggle-id="to-toggle-2">Click to toggle 2</div>
<div class="to-toggle" id="to-toggle-2">I will be toggled #2</div>
<div class="toggler" data-toggle-id="to-toggle-3">Click to toggle 3</div>
<div class="to-toggle" id="to-toggle-3">I will be toggled #3</div>
</div>​

最新更新