原始类型(Number,String等)按值传递,但是对象是未知的,因为它们可以是值传递(如果我们认为持有对象的变量实际上是对象的引用)并且通过引用传递(当我们认为对象的变量保存对象本身时).
虽然最后并不重要,但我想知道提交传递约定的参数的正确方法是什么.是否有JavaScript规范的摘录,它定义了与此相关的语义?
在你指出我之前,是的,我已经回顾了关于这个主题的六个帖子,但我仍然因为这不起作用而受到阻碍.
我的目标是检测自动完成何时产生0结果.这是代码:
$.ajax({
url:'sample_list.foo2',
type: 'get',
success: function(data, textStatus, XMLHttpRequest) {
var suggestions=data.split(",");
$("#entitySearch").autocomplete({
source: suggestions,
minLength: 3,
select: function(e, ui) {
entityAdd(ui.item.value);
},
open: function(e, ui) {
console.log($(".ui-autocomplete li").size());
},
search: function(e,ui) {
console.log("search returned: " + $(".ui-autocomplete li").size());
},
close: function(e,ui) {
console.log("on close" + $(".ui-autocomplete li").size());
$("#entitySearch").val("");
}
});
$("#entitySearch").autocomplete("result", function(event, data) {
if (!data) { alert('nothing found!'); }
})
}
});
Run Code Online (Sandbox Code Playgroud)
搜索本身工作正常,我可以得到没有问题的结果.据我了解,我应该能够使用自动完成("结果")处理程序拦截结果.在这种情况下,它根本不会发射.(即使是不引用结果数量的通用警报或console.log也不会触发).open事件处理程序显示正确的结果数(当有结果时),search和close事件处理程序报告结果总是落后一步.
我觉得我错过了一些显而易见的东西,但我只是看不到它.
我正在使用jQuery UI自动完成,如[http://api.jqueryui.com/autocomplete/]所述
我需要在执行搜索之前和之后做一些事情.通过阅读上述URL中的文档,它描述了在查询运行之前和之后触发的两种方法"搜索"和"响应" - 完美.但是,如果我将这些添加到我的代码中,"搜索"可以完美地工作,但"响应"永远不会被调用.我究竟做错了什么?我的所有代码都有效,没有javascript错误,自动完成功能完美无缺.但我只是没有触发"响应"方法.
$(function() {
$("#tv").autocomplete({
source: "a_url_providing_json",
minLength: 4,
select: function(event, ui) {
$('#state_id').val(ui.item.id);
$('#abbrev').val(ui.item.abbrev);
},
search : function(a,b) {
alert('this works!');
},
response : function(a,b) {
alert('this doesnt!');
}
})
});
Run Code Online (Sandbox Code Playgroud)
非常感谢任何建议!