php - jQuery 将相同的功能应用于不同的 div

标签 php javascript jquery

我想要 10 个 div,当有人点击它们中的每一个或将鼠标悬停在其中任何一个时,它都会发生变化。我现在拥有的是来自 php 的 foreach(遍历我想显示的东西的数组)并以类似的方式为每个写一个脚本,唯一的区别是 div 的 id:

<?php 
        foreach($lines as $line) {
            $lineId = $line->getId();
            echo "$('#translation$lineId').hover(
                function() { $('#translation$lineId').css('background-color', 'yellow'); },
                function() { $('#translation$lineId').css('background-color', 'transparent'); });";
            echo "$('#translation$lineId').focusin(function()
                            { $('#translation$lineId').css('background-color', 'red'); });";
            echo "$('#translation$lineId').focusout(function()
                            { $('#translation$lineId').css('background-color', 'transparent'); });";
        }
    ?>

在浏览器中,当 $lines 的数量很大时,它可以达到数百行代码。 有没有更好的办法?我想为此使用 JQuery。

另一个奖励问题是我如何在 Jquery 中做到当有人点击一个 div 时它使它变红,当有人取消点击它(点击其他地方)时它再次变得透明。这有点像我在我的代码中试图做的。 Jquery 也在这里。

最佳答案

为什么不使用类呢?

标记:

<div id="div1" class="mydivclass">Something</div>
<div id="div2" class="mydivclass">Something Else</div>

脚本:

$(document).ready(function() {
    $('.mydivclass').click(function() {
        $(this).doSomething();
    });
 });

奖金问题当你点击它时使 div 变红,当你点击其他地方时变透明......

$(document).ready(function() {
    $('html').click(function(event) {
        $('.mydivclass').each(function() {
            if ($(event.target).closest(this).length) {
                $(this).css('background-color','red');
            }
            else {
                $(this).css('background-color','rgba(0,0,0,0)');
            }
        });
    });
});

悬停只需使用 :hover css 伪类

.mydivclass {
    background-color:rgba(0,0,0,0);
}
.mydivclass:hover {
    background-color:red;
}

关于php - jQuery 将相同的功能应用于不同的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8605569/

相关文章:

php - Cron 作业在 Raspberry 中不起作用

php - 使用自定义 php mysql 查询从 wp 元值获取值

javascript - 为什么我的 Anytime DateTimePicker jQuery 插件仍然是一个通用文本框?

javascript - 如何先加载所有网站菜单和其他文本内容,然后在 WordPress 中加载图像?

javascript - jQuery 类菜单显示不正确

javascript - 如何将表排序器中的 href 值发送到对话框模式?

php - SQL 查询的语法错误

javascript - jQuery 显示/隐藏/鼠标输入问题

javascript - 调用 e.preventDefault() 后提交表单

jquery - mouseenter 中断导致循环点击