限制点击事件的范围

时间:2017-04-29 02:06:08

标签: javascript jquery jquery-ui

每当用户点击包含它们的 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生成的单击,以便它只影响输入字段而不影响整个字段集。如果有更清洁的方法来解决这个问题,请随时分享。

由于

1 个答案:

答案 0 :(得分:2)

您可能只想使用.triggerHandler()方法(请参阅此处的文档:https://api.jquery.com/triggerHandler/),无论是否调用焦点,都可以模拟点击事件,而无需将事件冒泡到树中并调用点击场地上的事件。

&#13;
&#13;
$('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;
&#13;
&#13;