javascript - 点击特定类触发打开模态事件

标签 javascript php jquery html css

我该如何解决这个问题?我已经使用 PHP 来显示我数据库中的数据,但我没有预见到这个错误。当我单击编辑时,模态将出现但是,当我单击其他数据的编辑按钮时,模态将不会出现。我怎样才能解决这个问题?我想要的是当我点击编辑按钮模式时会出现。我希望你能帮助我,这已经困扰我好几天了。

编辑按钮。

Edit Button HERE

请参阅模态。

Please See Modal HERE

这是我的代码:

PHP:

echo "<div class='col-3'>";
                        echo "<div class='card'>";
                        echo "<div class='row'>";
                        echo "<div class='col-2'>";
                        echo "<h6 class='card-title'>".$row['project_name']."</h6>";
                        echo "</div>";
                        echo "<div class='col-2'>";
                        echo "<div class='card-setting'><i class='fa fa-gear'></i></div>";
                        echo "<div id='card-setting-dropdown' class='card-dropdown-content'>";
                        echo "<button class='card-dropdown-menu' id='btn-edit'>Edit Project</button>";
                        echo "<button class='card-dropdown-menu'>Delete Project</button>";
                        echo "<button class='card-dropdown-menu'>Add Task</button>";
                        echo "</div>";
                        echo "</div>";
                        echo "</div>";
                        echo "<div class='row'>";
                        echo "<div class='col-2'>";
                        echo "<label  class='project-details'>".$row['department']."</label>";
                        echo "</div>";
                        echo "<div class='col-2'>";
                        echo "<label class='project-details' style='float:right;'>Priority: <span style='color:".$color."'>".$row['priority']."</span></label>";
                        echo "</div>";
                        echo "</div>";
                        echo "<div class='pr-task-data'>";
                        echo "<div class='pr-task-summary-l'>";
                        echo "<label class='pr-task-title'>Tasks</label>";
                        echo "<p class='pr-task-details'>".$count_2."</p>";
                        echo "</div>";
                        echo "<div class='pr-task-summary-l'>";
                        echo "<label class='pr-task-title'>Completed</label>";
                        echo "<p class='pr-task-details'>".$count_3."</p>";
                        echo "</div>";
                        echo "<div class='pr-task-summary-l'>";
                        echo "<label class='pr-task-title'>In-Progress</label>";
                        echo "<p class='pr-task-details'>".$count_4."</p>";
                        echo "</div>";
                        echo "<div class='pr-task-summary-r'>";
                        echo "<label class='pr-task-title'>Not Completed</label>";
                        echo "<p class='pr-task-details'>".$count_5."</p>";
                        echo "</div>";
                        echo "</div>";
                        echo "<div class='progress'>";
                        echo "<div class='progress-bar' style='width:".$percent."%;'>";
                        echo "<label class='progress-bar-percent'>".$percent."%</label>";
                        echo "</div>";
                        echo "</div>";
                        echo "</div>";
                        echo "</div>";

                        echo "<div id='modal_2' class='modal fade'>";
                        echo "<div class='modal-dialog'>";
                        echo "<div class='modal-content'>";
                        echo "<div class='modal-header'>";
                        echo "<h6 class='modal-title'>Add Project</h6>";
                        echo "<button type='button' class='close_2'>x</button>";
                        echo "</div>";
                        echo "<div class='modal-body'>";
                        echo "<form autocomplete='off' method='POST'>";
                        echo "<input type='hidden' id='".$row['project_id']."'>";
                        echo "<div class='form-group'>";
                        echo "<label class='form-control-label'>Program</label>";
                        echo "<input type='text' placeholder='Program' name='program' id='program_2' class='form-control'>";
                        echo "</div>";
                        echo "<div class='form-group'>";
                        echo "<label class='form-control-label'>Project Name</label>";
                        echo "<input type='text' placeholder='Project Name' name='pname' id='pname' class='form-control'>";
                        echo "</div>";
                        echo "<div class='form-group'>";
                        echo "<label class='form-control-label'>Project Description</label>";
                        echo "<input type='text' placeholder='Description' name='description' id='description' class='form-control'>";
                        echo "</div>";
                        echo "<div class='form-group'>";
                        echo "<label class='form-control-label'>Department</label>";
                        echo "<select class='form-control' id='department' name='department'>";
                        echo "<option value=''>Department</option>";
                        echo "<option value='Executive Department'>Executive Department</option>";
                        echo "<option value='CCA Department'>CCA Department</option>";
                        echo "</select>";
                        echo "</div>";
                        echo "<div class='form-group'>";
                        echo "<label class='form-control-label'>Priority</label>";
                        echo "<select class='form-control' id='priority' name='priority'>";
                        echo "<option value=''>Priority</option>";
                        echo "<option value='Low'>Low</option>";
                        echo "<option value='Medium'>Medium</option>";
                        echo "<option valie='High'>High</option>";
                        echo "<option valie='High'>High</option>";
                        echo "</select>";
                        echo "</div>";
                        echo "</div>";
                        echo "<div class='modal-footer'>";
                        echo "<button type='submit' class='btn btn-update' name='update'>Update</button>";
                        echo "<button type='button' class='btn btn-secondary'>Close</button>";
                        echo "</div>";
                        echo "</form>";
                        echo "</div>";
                        echo "</div>";
                        echo "</div>";

脚本:

//Edit Project Modal
var modal_edit = document.getElementById('modal_2');
var btn_edit = document.getElementById("btn-edit");
var span_edit = document.getElementsByClassName("close_2")[0];

btn_edit.onclick = function() { 
    $(modal_edit).toggleClass("modal-show");
}

span_edit.onclick = function() {
    $(modal_edit).removeClass("modal-show");    
}

$(".btn-secondary").click(function() {
    $(modal_edit).removeClass("modal-show");
});

最佳答案

尝试这样的事情。

  1. 向您的编辑按钮添加一个通用类,如 class="btnEdit other_classes"

  2. 试试这段代码

    var modal_edit = document.getElementById('modal_2');
    var span_edit = document.getElementsByClassName("close_2")[0];
    
    // I assumed that your button is added dynamically
    $(document).on('click',".btnEdit",function(){
        $(modal_edit).toggleClass("modal-show");
    });
    
    span_edit.onclick = function() {
        $(modal_edit).removeClass("modal-show");    
    }
    
    $(".btn-secondary").click(function() {
        $(modal_edit).removeClass("modal-show");
    });
    

您的点击不适用于其他元素,因为您正在使用 id 为它们分配事件,但 id 必须是唯一的。我用两个具有相同 ID 的元素制作了示例 fiddle ,并尝试查看它们的区别..

$("#first").click(function(){
  alert("I was clicked");
});
div{
display:inline-block;
width:100px;
height:100px;
border:1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="first">DIV</div>
<div id="first">DIV</div>

只有第一个有效..所以改用class..

关于javascript - 点击特定类触发打开模态事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48255791/

相关文章:

php - Qtip 不适合我?

javascript - 从另一个页面直接链接到特定的选项卡 Pane

javascript - 没有 jsx 的 .vue 文件

javascript - 对两个 Highcharts 饼图使用连接图例

javascript - 如何将 Ajax 数据值分配给 PHP 变量

javascript - 将 CSS 样式应用到具有特定类的每个元素的第一个句点

javascript - jQuery:暂停按钮暂停所有其他操作

php - 将复选框更新到 mysql 数据库

php - 如何在 Yii 中添加搜索和过滤条件

PHP:array_search 返回 null