Как я могу выполнить внешнюю функцию, когда элемент нажат?

Это не на самом деле C# скрытая функция, но я недавно обнаружил класс WeakReference и сдулся им (хотя это может быть смещено тем, что это помогло мне, нашел решение конкретная моя проблема ...)

12
задан Yuval Karmi 25 July 2009 в 23:47
поделиться

5 ответов

Чтобы ответить на вопрос, который у вас там был.

Очевидно, вам нужно вызвать его таким образом, чтобы работать:

$("#myelement").click(sayHello);

Вызов его так, как вы, на самом деле, выполняет метод вместо отправки метода обработчику кликов.

Если вам нужно передать данные, вы также можете вызвать метод следующим образом:

$("#myelement").click(function(){ sayHello("tom");});

Или вы можете передать данные через функцию bind ()

function sayHello(event){ alert("Hello, "+event.data); }

$("#myelement").bind("click", "tom", sayHello);

] Или вы можете получить данные из элемента, который был нажат

$("#myelement").click(function(){sayHello($(this).attr("hasData");});.

Надеюсь, что это поможет.

21
ответ дан 2 December 2019 в 04:17
поделиться

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

$("#myelement").click(sayHello);

Изменить: Если вам нужно передать параметры функции sayHello, вы нужно будет обернуть его другой функцией. Это определяет новую функцию без параметров, которая вызывает вашу функцию с параметрами, предоставленными во время создания:

$("#myelement").click(function () {
   sayHello('name');
   // Creates an anonymous function that is called when #myelement is clicked.
   // The anonymous function invokes the sayHello-function
});
8
ответ дан 2 December 2019 в 04:17
поделиться

Да, вместо того, чтобы передавать sayHello (), просто передайте функцию имя.

$("#myelement").click(sayHello);
0
ответ дан 2 December 2019 в 04:17
поделиться

какие параметры вы бы передавали во время щелчка? если вы знаете, что они собой представляют заранее, вы можете установить их до того, как пользователь щелкнет.

вы не можете передавать параметры, но вы можете подделать параметр, просто добавив элементы к объекту, который запускает событие, так что ..

myObject.onClick = sayHello;
myObject.param1 = "foo";

тогда, когда вы звоните по этому номеру

function sayHello(){
  alert(this.param1);
}
1
ответ дан 2 December 2019 в 04:17
поделиться

$ ("# myelement"). Click (sayHello ());

На самом деле это вызов sayHello () перед установкой обработчика click . Он пытается установить возвращаемое значение sayHello () в качестве функции обратного вызова!

Вместо этого попробуйте:

$("#myelement").click(sayHello);

А что касается вашего редактирования, если вам нужно передать параметры, вы можете просто использовать технику закрытия вы уже используете, но если вы Если вы ищете что-то более чистое, посмотрите Как передать ссылку на функцию с параметрами?

4
ответ дан 2 December 2019 в 04:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: