Это не на самом деле C# скрытая функция, но я недавно обнаружил класс WeakReference и сдулся им (хотя это может быть смещено тем, что это помогло мне, нашел решение конкретная моя проблема ...)
Чтобы ответить на вопрос, который у вас там был.
Очевидно, вам нужно вызвать его таким образом, чтобы работать:
$("#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");});.
Надеюсь, что это поможет.
Вы вызываете функцию 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
});
Да, вместо того, чтобы передавать sayHello (), просто передайте функцию имя.
$("#myelement").click(sayHello);
какие параметры вы бы передавали во время щелчка? если вы знаете, что они собой представляют заранее, вы можете установить их до того, как пользователь щелкнет.
вы не можете передавать параметры, но вы можете подделать параметр, просто добавив элементы к объекту, который запускает событие, так что ..
myObject.onClick = sayHello;
myObject.param1 = "foo";
тогда, когда вы звоните по этому номеру
function sayHello(){
alert(this.param1);
}
$ ("# myelement"). Click (sayHello ());
На самом деле это вызов sayHello ()
перед установкой обработчика click
. Он пытается установить возвращаемое значение sayHello ()
в качестве функции обратного вызова!
Вместо этого попробуйте:
$("#myelement").click(sayHello);
А что касается вашего редактирования, если вам нужно передать параметры, вы можете просто использовать технику закрытия вы уже используете, но если вы Если вы ищете что-то более чистое, посмотрите Как передать ссылку на функцию с параметрами?