JQuery中的列表大小侦听器

尤西夫·拉希姆(Yousif Al-Raheem)

我创建了一个动态列表,用户可以在其中添加和删除内容,对此列表有一个限制,即用户不能输入超过5的限制。每次用户在输入字段中单击“ Enter”时,检查列表大小是否达到最大值,因为我不希望收到警报,因此更改文本和字体颜色是最大的。另一方面,如果列表达到了极限,并且用户决定删除一些项目,那么这里的问题是我如何不断监视列表的大小以提供更好的反馈。有没有一种方法可以将eventListener放在(ul)上以检查其中有多少(li)?我正在使用JQuery来管理所有内容,我不介意其他语言的解决方案。

<input type="text" placeholder="Type here">
<ul class="sortable" id="inputList">
<?php
    for($i=0; $i<sizeof($serverItems); $i++)
        echo "<li>".$serverItems[$i]."<a class='close remove'>&times;</a></li>"; 
?>
</ul>
<span id="listLimit">(Max: 5)</span>

我的JQuery看起来像这样:

$('#input').keydown(function(e) {
    if(e.keyCode == 13 && $(this).val()!="") {
        if($('#inputList li').size()<5){
        var item = $(this).val();
        $('#inputList').append('<li>' + item + '<a class="close remove">&times;</a></li>');
        } else $('#listLimit').text('Maximum Limit Reached!').css('color','red');
        $(this).val('');
    }
});

这就是我如何删除点击项:

$(document).on('click', '.remove', function() {
    $(this).parent().remove();
});

请注意,“ close”类仅适用于CSS,“ remove”类是JQuery中用于删除该项的东西。

永赛A

尝试使用以下选项

        $("li").on('click', '.remove', function() {
        $(this).parent().remove();
    });

在您的keydown函数中,通过$(“ li”).length检查li个项目的数量。li个项目的总数警报(“ Size:” + $(“ li”).length); 注意:从jQuery 1.8开始不推荐使用.size()方法,最好使用.length()代替size()

我观察到的其他语法错误是#input是ID为-input的输入字段,但是在您的示例中没有输入ID,因此应如下所示

$('input')。keydown(function(e)

Codepen- http: //codepen.io/nagasai/pen/XKKoYx

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章