Сквозная функция JavaScript? - PullRequest
4 голосов
/ 25 мая 2010

Я не уверен, что это выполнимо, но я хотел бы иметь возможность установить событие jQuery UI как функцию (напрямую), в отличие от продолжения переноса в дополнительные function(event, ui) { ... } оболочки.

Надеюсь, вы увидите, о чем я говорю, из приведенного ниже примера.

Вот что я хотел бы:

$("#auto").autocomplete({
    source: "somepage.php",
    select: dropdownSelect,
    minLength: 0
});

Теперь я думаю, что вышесказанное сработает, поскольку я просто пытаюсь сказать: «Продолжайте запускать это событие, только для этой функции». К сожалению, это не сработает, и я заканчиваю этим: (и по какой-то причине отключение от всех данных)

$("#auto").autocomplete({
    source: "somepage.php",
    select: function(event, ui) { dropdownSelect(event, ui) },
    minLength: 0
});

Большое спасибо заранее.

Ответы [ 3 ]

4 голосов
/ 25 мая 2010

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

var dropdownSelect = function(event, ui) {  
    // Code to select drop down
};

$("#auto").autocomplete({
    source: "somepage.php",
    select: dropdownSelect,
    minLength: 0
});

А это:

function dropdownSelect(event, ui) {  
    // Code to select drop down
};

$("#auto").autocomplete({
    source: "somepage.php",
    select: function(event, ui) { dropdownSelect(event, ui) },
    minLength: 0
});

Функции JavaScript являются гражданами первого класса, что означает, что вы можете обращаться с ними как с любым другим объектом.

0 голосов
/ 25 мая 2010
var dropdownSelect = function(event, ui) { ... };
var onDropdownSelect = function(event, ui) { dropdownSelect(event, ui) };
$("#auto").autocomplete({
    source: "somepage.php",
    select: onDropdownSelect,
    minLength: 0
});
0 голосов
/ 25 мая 2010

уверен, почему бы сначала не определить эту функцию:

var dropdownSelect = function(event, ui) { dropdownSelect(event, ui) };
$("#auto").autocomplete({
    source: "somepage.php",
    select: dropdownSelect,
    minLength: 0
});
...