Jquery在点击事件输入
jquery on click event input
想象一下:我有多个带有attr "data-question-id"的div,在这个div中,我有一个或多个输入,可能有也可能没有attr "has-next-question"。请看下面的例子:
<div data-question-id="5">
<input type="radio" has-next-question="true" value="2"> test1
<input type="radio" value="3"> test2
</div>
<div data-question-id="6">
<input type="radio" has-next-question="true" value="5"> test3
<input type="radio" has-next-question="true" value="7"> test4
</div>
正如你在第一个div中看到的,它有两个输入,但是其中一个没有"has-next-question"。我的问题是,我怎么能绑定一个点击事件的输入有一个父div与attr "data-question-id"和这个div至少有一个输入与attr "has-next-question"。
我已经完成了:
$(document).on('click', 'div[data-question-id] input', function(e) {
alert('click');
});
帮忙吗?由于人
编辑:更改了attr "has-next-question",因为它是一个无效的html属性。
想象一下:如果我点击"test1",它应该触发事件,但如果我点击"test2",它也应该触发事件,因为带有attr"data-question-id"的父div至少有一个带有attr"has-next-question"的输入,对应于"test1"。如果父div中没有带attr "has-next-question"的输入,则不应该触发该事件。
您已经为div
做过了,所以请重复。
div[data-question-id] input[has-next-question]
这不是正确的html。has-next-question
不是一个有效的属性。
但这应该可以,
$(document).on('click', 'div[data-question-id] input[has-next-question]', function(e) {
alert('click');
});
编辑:(修改原题后),
不,你不能用它创建一个选择器。jQuery使用CSS选择器,它们不能从子元素到父元素。
但是,你可以这样做,
$(document).on('click', 'div[data-question-id] input', function(e) {
if($(this).parent().find('[has-next-question]').length === 0 ) return;
// Other code which needs to be executed.
});
。如果父级没有[has-next-question]
属性的子级,则从函数中出来。
扩展你的选择器:
$(document).on('click', "div[data-question-id] input[has-next-question='true']", function(e) {
alert('click');
});
相关文章:
- 是否可以为HTML5输入滑块触发oninput事件
- 使用onkeyup JS事件检查输入的值是否唯一
- 访问代码生成的输入元素上的keyup事件
- 无线电输入更改的jQuery事件未启动
- JS事件未更改输入禁用属性
- 在表单中的输入字段上提交事件
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 如何获取按钮点击事件输入的当前值
- 在放置目标时,输入并离开自定义事件
- 为什么不是't;输入“;此处触发事件
- 替代输入:基于按钮点击事件的文本更改处理程序
- 检查 jQuery 中的递增-递减事件输入类型编号
- Ng-model绑定触摸事件输入的值失败
- 从onkeyup事件输入触发JS函数
- 用于关键事件输入验证的Javascript正则表达式故障排除帮助
- Jquery在点击事件输入
- 如何检测javascript事件输入的变化
- 更改事件输入字符
- 触发多个事件/输入字段的功能并计算它们
- 组合组件上的onBlur事件(输入+按钮)