-5

我有一个代码结构,如:

<script type="text/javascript">
function something()
{
  alert("insomething");
}
</script>

<input type="text" onclick="check" id="clk"/>

----------

我想知道如何触发 clk.click () ?从下面的jQuery:

$('.btn.right').click(function(e) {
     $("#clk").onclick(); //DOES NOT WORK.. Need help with this.
}
4

3 回答 3

2

在 jQuery 中,您可以通过执行以下操作来触发与用户单击某物完全相同的响应:

$("#clk").click();

于 2013-07-03T17:11:55.817 回答
2

只需使用此处click()记录的方法。

$('.btn.right').click(function(e) {
     $("#clk").click(); 
}

没有参数,它是.trigger('click').

于 2013-07-03T17:10:27.297 回答
2

看完评论后,我决定写一个答案。

我觉得你可能对函数的工作方式有些困惑。您不能简单地通过click事件传递参数(它是事件/动作),更不用说内联 onclick 函数不接受参数。在您当前的示例中,

<script type="text/javascript">
function something()
{
  alert("insomething");
}
</script>

<input type="text" onclick="check" id="clk"/>

function check当点击事件发生时,您正在引用。然而,check并不存在。如果要将参数传递给function something,则需要这样编写:

<input type="text" onclick="something(*parameter*)" id="clk"/>

但是,您随后需要进行编辑function something(),以便它接受参数。因此,您将其更改为function something(param).

如果您想通过单击事件传递参数,则需要使用.trigger(). 但是,您随后需要稍微更改您的代码。

尝试做这样的事情:

HTML:

<input type="text" id="clk"/>

<button class="btn right">Click</button>

JAVASCRIPT:

$(function(){
    function something(a) //a is the parameter
    {
      alert(a);
    }

    $('#clk').click(function(e, parm1, parm2){
        //parm1 is first object in extraparameters array, parm2 is second
        something(parm1);
        something(parm2);
    });

    $('.btn.right').click(function(e) {
        $("#clk").trigger('click', ['something', 'somethingelse'] );
    });
});

演示:http: //jsfiddle.net/dirtyd77/Z3YWb/1/

希望这可以帮助!

于 2013-07-03T17:39:57.217 回答