JavaScript函数传递?

时间:2010-05-24 20:17:56

标签: javascript jquery jquery-ui javascript-events

我不确定这是否可行,但我希望能够将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 个答案:

答案 0 :(得分:4)

以下两个例子都应该在理论上起作用:

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函数是一等公民,这意味着您可以像对待任何其他对象一样对待它们。

答案 1 :(得分:0)

确定为什么不先定义该功能:

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

答案 2 :(得分:0)

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