Как Получить доступ к Событию jQuery Без Использования Анонимного Параметра Обратного вызова

Печально невозможно сделать это. Проблема, конечно, что нет никакого синтаксиса SQL для разрешения ее. Это происходит 'под капотом', конечно, но Вы не можете достигнуть эти другие результаты в TSQL, только из приложения через ODBC или что бы то ни было.

существует окольный путь он, как с большинством вещей. Прием должен использовать ole автоматизацию в TSQL для создания объекта ADODB, который открывает каждый набор результатов в свою очередь, и запишите результаты в таблицы, которые Вы назначаете (или сделайте то, что Вы хотите с наборами результатов). можно также сделать это в DMO при наслаждении болью.

7
задан Roatin Marth 1 December 2009 в 03:34
поделиться

4 ответа

Исходный ответ

function test(eve) {
  alert(eve.type);
  alert(this);
  //$(this) if you need it as jQuery object
}
$([yourselector]).live("click", test);

Вы автоматически получите событие в параметре eve .


Ответ на расширенный вопрос в комментарии

Передача параметра делает его немного сложнее. Если вам нужно объяснение, почему я сделал это так: Спросите.

function helper(customparam) {
    return function(eve, selector) { actualFunction(eve, selector, customparam, this) };
}

function actualFunction(eve, selector, customparam, self) {
    alert(eve.type);
    alert(selector);
    alert(customparam);
    alert(self); //self is now the element we clicked on
    //$(self) if you need it as jQuery object
    //using this won't work anymore as this is now window
}

$([yourselector]).live("click", helper([yourparameter]));
14
ответ дан 6 December 2019 в 11:49
поделиться

Вы можете вызвать функцию в анонимной функции обратного вызова:

$button.live("click", function(ev) {
    functionToCall(ev, $(this));
}

РЕДАКТИРОВАТЬ : Я думаю, что это может быть то, что вы хотите сделать (непроверено):

function handleClick(ev) {
    $(this).die("click");
    // ...whatever processing to do...
    $(this).live("click", handleClick);
}

$button.live("click", handleClick);

Я считаю $ (this) будет ссылаться на объект кнопки, в котором была вызвана функция.

2
ответ дан 6 December 2019 в 11:49
поделиться
var mythis = $(this);
var callback = function(ev) {
    var target = mythis.event("click").target;
}


$button.live("click", callback);
0
ответ дан 6 December 2019 в 11:49
поделиться

Помните, что jQuery повторно назначает this при вызове обработчиков событий, используя методы функции call или apply . Поэтому, когда вызывается functionToCall , this является элементом DOM кнопки $.

var functionToCall(ev) {
    var $this = $(this);
    $this.die("click", functionToCall);
    // stuff
    $this.live("click", functionToCall);
}

$button.live("click", functionToCall);
1
ответ дан 6 December 2019 в 11:49
поделиться
Другие вопросы по тегам:

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