解绑后无法绑定
Cannot bind after unbinding
本文关键字:绑定 更新时间:2023-09-26
我试图在之前解除绑定后绑定单击事件,但我无法让它工作。
这是我的 HTML:
<div class="input-group date">
<input type="text" class="form-control" id="dp1" style="width: 100px; vertical-align: middle" />
<span class="input-group-addon" id="dp1Icon" style="outline-style:none"><img src="<%=context%>/images/calendar-glyph.png"></span>
</div>
输入实际上是一个引导日期选取器组件。跨度包含一个引导程序标志符号,用于触发日期选取器打开。我有一个单选按钮组,可以像这样切换禁用这些按钮:
$(".date-wrap input[type='radio']").on("click", function(e){
if ($(e.target).val() == "permanent"){
$("#dp1, #dp1Icon").prop("disabled", true);
$("#dp1Icon").unbind("click"); // Disabled attribute only works on form controls, not spans. So we have to unbind the event
$("#dp1").removeAttr("readonly", "readonly");
}else{
$("#dp1, #dp1Icon, #e3").prop("disabled", false);
$("#dp1Icon").bind("click");
$("#dp1").removeAttr("readonly");
}
});
因此,如果他们单击的单选按钮的值是"永久的",则所有内容都将被禁用;这很好用。否则,我会尝试重新打开它们。
我唯一能想到的是,当我尝试再次将 click 事件绑定到 glyphicon 时,我必须定义打开日期选取器的实际处理程序;如下所示:
$("#dp1Icon").bind("click", $("#dp1").datepicker('show'));
但所做的只是在我单击另一个单选按钮后立即打开日期选择器。我希望它仅在他们单击它时打开。我在这里错过了什么重要的东西?有人有想法吗?
感谢您的任何提示。
bind("click")
不会神奇地重新添加事件。您需要将其添加回事件。
$("#dp1Icon").on("click", function(){ $("#dp1").datepicker('show'); } );
您最好只在该函数中设置一个标志,而不是删除事件。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 无法通过数组映射绑定
- 主干-不管怎样,检查事件以前是否绑定过
- 用于搜索的聚合物嵌套绑定
- Angular:更新一次性绑定的数据
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- react.js中的密钥绑定
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 将事件处理程序绑定到任何可能的事件
- AngularJS指令只识别双向绑定类型
- Telerik rad组合框多列数据绑定
- 对API数据使用声明性绑定
- 如何销毁/删除/取消绑定SnapSVG.js
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 数据绑定:'系统Char'不包含名为'xxxxx'
- react组件中的绑定方法
- 如何将ngrepeat下的ngmodel绑定到$scope
- WinJS内联绑定语法
- ng绑定和ng href问题.ng href未从控制器加载数据
- 如何在动态创建的节点上绑定函数