2013-07-03 3 views
-5

У меня есть структура кода, как:вызов HTML OnClick из JQuery

<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. 
} 
+2

'$ (" # clk "). Click();' – Dom

+1

Если вы хотите использовать свой синтаксис, используйте '$ ('# clk'). Trigger ('click');' вместо '$ ('# clk «) .onclick();'. –

+0

Почему вы включили свой 'function something()' code? Ничто не называет его. – j08691

ответ

2

В JQuery, вы можете вызвать точно такой же ответ, как если бы пользователь нажал что-то, выполнив следующие действия:

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

+0

он работает, но когда я хочу передать ему параметры .. так что $ ("# clk"). Click ('yes'); // он терпит неудачу. Я изменил подпись функции, чтобы принять в 1 параметр. – user2547591

+0

@ user2547591 Почему вы делаете это таким образом? Кажется, это очень ... неправильно. –

+0

ну его вид длинного кода, и я не хочу вставлять весь мусор здесь, и я не хочу объединить два кода .. отсюда вопрос. – user2547591

2

Просто использовать click() метод документированы here.

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

Не имеет параметров, это сокращение от .trigger('click').

+0

он работает, но когда я хочу передать ему параметры .. так что $ ("# clk"). Click ('yes'); // он терпит неудачу .. Я изменил подпись функции, чтобы взять в 1 параметр. – user2547591

+3

Что значит «да»? Это просто _click_. –

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']); 
    }); 
}); 

DEMO: http://jsfiddle.net/dirtyd77/Z3YWb/1/

Надеется, что это помогает!