1

我在动态创建的元素方面遇到了一些问题。我正在尝试为我的网站创建一个页面,该页面将显示用户列表(已从控制器传递到我的视图中)。对于每个用户,我创建了一个 div 持有者,并且在每个 div 内我有两个 h3 标签显示用户的 ID 和名称。每个用户 div 还包含一个按钮,该按钮允许隐藏或显示用户。

 <div class="single-user" id="@user.Hidden.ToString()">
     <h3>ID: @user.Id</h3>
     <h3>Name: @user.Forename @user.Surname</h3>
     <span><input type="submit" class="sub-btn" /></span>
 </div>

除了“name”和“id”属性,我还传入了一个“hidden bool”属性。这用于检查用户是否已被隐藏。我遇到的问题是,因为元素是动态创建的,它们都共享相同的类和 id,所以我无法检查用户是否隐藏。我在网上查了一下,找到了一个可能的解决方案,但是仍然无法正常工作。这是我的 JavaScript 代码。

 <script type="text/javascript">

    $('.single-user').on('click', '.sub-btn', function () {
        if ($('.single-user').has('#True')) {
            console.log("true");
        }
        else {
            console.log("false");
        }
    });

 </script>

任何帮助将不胜感激。

4

1 回答 1

2
<div class="single-user" data-visible="@user.Hidden.ToString()">
     <h3>ID: @user.Id</h3>
     <h3>Name: @user.Forename @user.Surname</h3>
     <span><input type="submit" class="sub-btn" /></span>
 </div>


<script type="text/javascript">

    $(document).on('click', '.sub-btn', function () {
        if ($(this).closest('.single-user').attr('data-visible')=="True") {
            console.log("true");
        }
        else {
            console.log("false");
        }
    });

 </script>
于 2013-10-29T18:31:04.403 回答