Подтвердить что ты не робот

JQuery имитировать щелчок

Я хочу вызвать функцию, когда страница загружена. Есть много способов сделать это. Однако, когда я добавляю $('#button').click перед моей функцией, функция getType не распознается. Например:

$('#button').click(function getType(id) {
    //...some code
});

error: getType не определен

Что я делаю неправильно?

Просто, чтобы уточнить, в этом случае я не могу использовать анонимную функцию. Кроме того, для меня не имеет значения, использую ли я $(document).ready или $(window).bind("load", function(), но при использовании этих данных я все еще получаю ошибку "getType не определен".

4b9b3361

Ответ 1

У вас либо есть анонимная функция:

$('#button').click(function() {
    //...some code
});

Или пропустите эту функцию:

function getType() {
    //...some code
}

$('#button').click(getType);

Если вы просто хотите вызвать клик, вызовите .click():

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

Кроме того, ваш параметр id не будет элементом id. Это будет объект события click. Чтобы получить элемент id, вы можете обратиться к элементу с щелчком, используя this:

$('#button').click(function() {
    var id = this.id;
});

Я предлагаю вам прочитать несколько руководств по JavaScript и jQuery (в этом порядке).

Ответ 2

Вы используете встроенную запись так, вы должны использовать анонимную функцию (без функции имени)

ваш код должен быть:

$('#button').click(function() {
      // do your stuff here
    }
);

Рядом с, который, как говорится в заголовках, вам нужно смоделировать событие click, правильно? если так вам лучше использовать что-то вроде:

$('#button').on('click', function() {
  alert($(this).text());
});
// somewhere when you want to simulate the click you call the trigger function
$('#button').trigger('click');

см. здесь

Ответ 3

$('#button').click(function getType(id) {
    //...some code
});

Должно быть:

$('#button').click(function() {
        [...] code here
    }
);

function() { } - это обратный вызов с каким кодом должен выполняться, когда я нажимаю какой-либо элемент.

Если у вас есть функция getType, вы можете передать ее как обратный вызов:

$('#button').click(getType);

Если вы хотите вызвать функцию, когда загружается страница, вы можете сделать это:

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

или

function getType() {
    [...] code here
}

getType();

Ответ 4

Используйте .trigger( event [, extraParameters ] ) для элемента.

extraParameters
Тип: массив или PlainObject
Дополнительные параметры для перехода к обработчику событий.

Дополнительным преимуществом является то, что вы можете передавать данные обработчику событий, тогда как если вы используете .click(), вы не можете назначать данные для объект.

$("#target").trigger('click');

Если вы хотите использовать extraParameters:

$( "#foo" ).on( "custom", function( event, param1, param2 ) {
  alert( param1 + "\n" + param2 );
});
$( "#foo").trigger( "custom", [ "Custom", "Event" ] );

Ответ 5

Метод .click() требует функции обратного вызова. Поэтому вы можете сделать что-то вроде этого:

//Define your function somewhere else
function getType(id) {
    //...some code
}

$('#button').click(function() {
    getType($(this).attr('id')); //Execute it when its clicked.
});

Ответ 6

Попробуйте это, идентификатор не может быть передан так, как вы делаете:

$('#button').click(function() {
    var id = this.id;
    //...some code
});