每当用户点击包含它们的 fieldsets 时,我想在输入字段上触发点击事件,即使他们没有完全点击在输入上。这是它的样子:
<fieldset>
<input name="age" placeholder="Age">
</fieldset>
这是我的JS:
$('fieldset').on('click', function(){
// $(this).find('input').click();
$(this).find('input').focus();
})
我首先尝试触发点击,但这会产生一个&#34;无限循环&#34;因为每次点击都会触发另一次点击。这个问题是通过 focus()解决的,但问题是没有触发我使用的Jquery autocompletion plugin。只有点击似乎这样做。我认为有一种方法可以限制&#34;范围&#34; JS生成的单击,以便它只影响输入字段而不影响整个字段集。如果有更清洁的方法来解决这个问题,请随时分享。
由于
答案 0 :(得分:2)
您可能只想使用.triggerHandler()方法(请参阅此处的文档:https://api.jquery.com/triggerHandler/),无论是否调用焦点,都可以模拟点击事件,而无需将事件冒泡到树中并调用点击场地上的事件。
$('input').on('click', function(){console.log('clicked')})
$('fieldset').on('click', function(){
debugger
$(this).find('input').triggerHandler('click');
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset>
<input name="age" placeholder="Age">
</fieldset>
&#13;