【发布时间】:2013-03-28 17:58:47
【问题描述】:
想象一下:我有多个属性为“data-question-id”的 div,在这个 div 中我有一个或多个输入,可能有也可能没有属性“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 中看到的,我有两个输入,但一个没有 attr“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" 的输入,则不应触发该事件。
【问题讨论】:
-
$(document).on('click', 'div[data-question-id] input[has-next-question="true"]', function(e) {? -
我知道这不是你要问的,但既然“has-next=question='true'”不是html属性,那你为什么不把它设为类名呢?触发?看起来你只在有下一个问题时才使用它,没有“错误”值。 $(document).on('click', 'div[data-question-id] input .has-next-question, function(e) { alert('click'); });
标签: javascript jquery