0

我的标记如下:

<li><span>..</span>
   <input type="button" id="clickme" Value="click ME" />
</li>

我的问题是如何使用 jquery 自动触发 li 的输入子项(按钮)的单击事件

我不想通过它的 id 访问按钮我想通过 .children() 方法访问它。我试图这样做,但没有奏效:

<li id="liID"><span>...</span><input type="button" id="clickme" value="click ME" />

$("#liID").children("input").trigger('click');

但这没有用:/

4

4 回答 4

0

您可以使用

$('#clickme').trigger('click');
于 2012-07-24T07:31:01.403 回答
0

您可以使用trigger()方法:

执行所有附加到给定事件类型的匹配元素的处理程序和行为。

$('li input').trigger('click');

或者:

$('#clickme').click()

关闭li标签并尝试使用find()方法:

<li id="liID"><span>...</span><input type="button" id="clickme" value="click ME" /></li>

$("#liID").find("input").trigger('click');
于 2012-07-24T07:31:13.817 回答
0

你可以说:

$('#clickme').click();

这是一个快捷方式:

$('#clickme').trigger('click');

有关更多信息,请参阅 jQuery API 文档.click().trigger().

编辑:您似乎是说您想通过父 li 元素的 id 选择输入。如果是这样,如果您不想依赖输入作为直接子项,请执行以下操作:

$("#liID").find("input").click();
// OR
$("#liID input").click();

或者,如果您只想选择直接子项的输入,您的代码应该可以工作:

$("#liID").children("input").trigger('click');
于 2012-07-24T07:32:08.130 回答
0

您实际上是在尝试以编程方式单击按钮,还是只是触发一些附加到其单击事件的 Javascript?两者不同:

要触发附加到点击事件的一些 JS,您可以简单地执行类似的操作

$('input', '#liID').click();
$('#liID').children('input').trigger('click');
etc

但是,据我所知,实际上不可能用 JS 伪造点击事件。您可以触发附加到事件处理程序的 JS,但是如果您正在寻找默认功能,我认为没有任何可靠的方法可以做到这一点,因此您最好创建一个 JS 函数并将其附加到点击输入事件。然后你可以以编程方式触发它。

于 2012-07-24T08:11:56.143 回答