事件为所有项目而不仅仅是当前项目激发
Event fires for all items not just the current item
我正在尝试将我的插件附加到一个输入字段,它在一定程度上起作用。因此,我将一个带有onchange
的on()
附加到输入字段,当它触发时,它会为每个输入触发,而不仅仅是更改的输入。是什么原因造成的?是因为我在使用$(document).on()
吗?我是这样添加的,因为项目是动态添加到页面中的。
(function($){
$.fn.itemsave = function(config){
return this.each(function(){
var item = $(this);
var opt = {
// The options
};
var e = $.extend(opt, config);
$(document).on("change", item, function(){
request(false, e);
});
});
})(jQuery);
它的名称:
$(".simplesave").itemsave(null);
您正在传递一个jQuery对象作为.on()
的第二个参数。这不是一个错误,但库将把它解释为一个对象,以便作为event.data
对事件处理程序可用。这也意味着没有正在进行的事件处理委托。因此,您正在建立一个"更改"事件处理程序,当任何"更改"活动冒泡到文档级别时,该程序都会启动。
您可能应该直接将处理程序附加到您的元素:
item.on("change", function() {
request(false, e);
});
我认为这一行导致了一个错误,因为item
应该是一个选择器而不是一个元素:
$(document).on("change", item, function(){
解决方案是在项目上设置一个偶数处理程序
$(item).on("change", function(){
request(false, e);
})
相关文章:
- Ajax聊天消息重复而不仅仅是更新
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 事件为所有项目而不仅仅是当前项目激发
- 在加载时显示,而不仅仅是在选中时显示
- 删除 HttpCookie 不仅仅是它的值
- 脚本选择所有输入,而不仅仅是复选框
- for 循环中的 if 语句都执行,而不仅仅是一个
- 当将函数传递给方法时,为什么使用匿名函数容器而不仅仅是原始函数有效
- .slideup()删除整个ul,而不仅仅是嵌套的li
- jQuery隐藏所有trs或td,而不仅仅是一个
- 使用Maven压缩所有内容,而不仅仅是源目录
- 从数组中删除双值,而不仅仅是javascript中的重复值
- 在全球范围内强制ng严格di,而不仅仅是在ng应用程序级别上
- Jquery Slider-获取滑块的每个数值?不仅仅是在mouseout上
- 我如何让jQuery在Facebook发布自动加载时做一些事情,而不仅仅是在页面加载时
- 手风琴中重置项目高度是't正确复位
- 如何使元素的宽度和高度为页面(文档)的100%,而不仅仅是窗口(浏览器)
- 在 Magnific 弹出窗口中打开所有图像,而不仅仅是发布图像
- 选择多个项目,而不仅仅是一个(angularJs)
- 属性将应用于所有项目,而不仅仅是当前项目