JQuery:如何动态引用元素
JQuery: How to reference element dynamically?
我有一个由两部分组成的开发问题。在第一部分中,我设置了几个委托的事件处理程序:
$('#content').on('click','#button1',function1);
$('#content').on('click','#button2',function2);
在函数 1 和函数 2 中,除其他处理外,我设置了全局变量来指示单击了哪个按钮:
function1(e) {
...
var whichButtonClicked = $('#button1');
...
}
function2(e) {
...
var whichButtonClicked = $('#button2');
...
}
稍后,其他代码需要删除处理程序。
$('#content').off('click',whichButtonClicked,theFunctionRun);
但是,.off 处理程序不起作用。如果我将其硬编码为这样的按钮之一,它确实有效:
$('#content').off('click','#button1',theFunctionRun);
但随后我失去了在任一按钮功能后运行它的能力。
如何更正此语句:
$('#content').off('click',whichButtonClicked,theFunctionRun);
使我的代码正常工作?
我可以在其上运行其他命令,例如:
whichButtonClicked.trigger('click');
JSFiddle: https://jsfiddle.net/nLorh2wm/20/
尝试删除元素周围的$(...)
:
注意:代码段似乎没有显示警报,但您可以在此处看到它的工作原理:https://jsfiddle.net/rplittle/nLorh2wm/23/
$(document).ready(function() {
$('#content').on('click', '#button1', function1);
$('#content').on('click', '#button2', function2);
$('#content').on('click', '#buttonAfter', followUpFunction);
});
var theButtonClicked;
var theFunctionRun;
function function1(e) {
alert('in function1');
theButtonClicked = '#button1';
theFunctionRun = function1;
}
function function2(e) {
alert('in function2');
theButtonClicked = '#button2';
theFunctionRun = function2;
}
function followUpFunction(e) {
$('#content').off('click', theButtonClicked, theFunctionRun);
}
<div id="content">
<button id="button1">
Button 1
</button>
<button id="button2">
Button 2
</button>
<button id="buttonAfter">
Turn Off Handler for Button 1
</button>
</div>
相关文章:
- 在动态创建的元素上获取对特定选择器的引用
- 通过动态创建数组名称在单击函数中引用 javascript 数组
- 使用 Reactjs 保留对动态子引用的引用
- 存储对追加动态添加的元素的引用
- '这'引用了jQuery on()中错误的动态生成元素
- 如何动态引用 jQuery 插件实例
- 在 javascript 中使用变量来动态引用 html 元素
- JQuery:如何动态引用元素
- 动态引用函数时的Javascript变量范围
- 如何在React上获得动态引用
- 动态引用导入
- 使用参数动态引用json对象
- 动态引用变量(对象)
- 动态引用类属性
- 在Yii中使用javascript动态引用对象ID
- 动态引用JQUERY中的子元素
- 如何在Javascript中动态引用字符串
- 在开头或动态引用javascript
- 动态引用一个嵌套的Javascript对象
- 如何动态引用对象