我可以帮您将其翻译为中文:我能绑定到 jQuery 事件的元素数量有最大限制吗?

4

我正在构建一个简单的单页面应用程序,允许用户编辑一组json源。我在尝试将鼠标进入/离开事件绑定到页面上给定类别的所有输入上时遇到了问题。简单地说,第一个有效而第二个无效。

我使用以下jQuery代码:

        $(".feed").on("mouseenter", ".publish", function(){
            console.log("feed")
        }); //this is for test purposes
        $(".feed").on("mouseenter", ".keys-input", function(){
            console.log($(this)); 
            $(this).siblings(".delete").fadeIn(75); 
        }); 
        $(".feed").on("mouseleave", ".keys-input", function(){
            $(this).siblings(".delete").fadeOut(75); 
        }); 

以下是HTML代码:

<div class="feed"><!-- sorry for the confusion -->
    <div class="feed-header">
    <h2>pga-2013.json</h2>
    <button class="publish button-white-bg button-save">Publish</button>
    </div>
    <div class="kvRow collapsed">
    <span class="delete icon">x</span>
    <input type="text" class="keys-input" value="free" disabled=""/> 
    <input type="text" class="values-input" value="0" disabled=""/>
    </div>
</div>

我询问是否有绑定元素的最大数量是因为".feed"事件触发,而dom上只有11个,而".keys-input"事件不会触发,但dom上有7266个。要么我视力有问题,要么我做了些愚蠢的事情...这里有一个只有少量元素但使用相同代码的fiddle示例:http://jsfiddle.net/khLPc/ 这是问题所在:Event on a disabled input输入框已被禁用,因此不会触发事件,这对我来说很奇怪...

2
它不会在禁用的元素上触发,与计数无关。 - Balint Bako
1
严肃地说!?为什么?如果是这样,那真是一记重击... - Brad
尝试将 $(".feed") 替换为 $(document) 进行调试。看看是否有效。 - Sushanth --
1
启用输入,你就会明白我的意思。并不是我的意思不明显。http://jsfiddle.net/balintbako/khLPc/1/ - Balint Bako
@BalintBako - 你能否回答一下这个问题,这样我就可以接受它了吗? - Brad
显示剩余7条评论
1个回答

1

禁用的元素不会触发该事件。

启用输入框即可使其正常工作。 请查看此处,我已经启用了其中的一个输入框: http://jsfiddle.net/balintbako/khLPc/1

显然,我也需要包含一些代码:

<input type="text" class="keys-input" value="free"/> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接