我更新了我的jQuery文件,包括jquery UI,以使用工具提示功能.
但现在Javascript正在消失,出现以下错误:
TypeError: e.widget.extend is not a function
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
我正在实施搜索。每个搜索查询都会生成一个 DispatchWorkItem,然后将其排队等待执行。由于用户触发新搜索的速度比前一个搜索完成的速度要快,因此我想在收到新搜索后立即取消前一个搜索。
这是我当前的设置:
var currentSearchJob: DispatchWorkItem?
let searchJobQueue = DispatchQueue(label: QUEUE_KEY)
func updateSearchResults(for searchController: UISearchController) {
let queryString = searchController.searchBar.text?.lowercased() ?? ""
// if there is already an (older) search job running, cancel it
currentSearchJob?.cancel()
// create a new search job
currentSearchJob = DispatchWorkItem() {
self.filter(queryString: queryString)
}
// start the new job
searchJobQueue.async(execute: currentSearchJob!)
}
Run Code Online (Sandbox Code Playgroud)
我知道这dispatchWorkItem.cancel()
不会立即终止正在运行的任务。相反,我需要手动检查dispatchWorkItem.isCancelled
。dispatchWorkItem
但在这种情况下我如何获得正确的对象呢?
如果我只设置currentSearchJob
一次,我可以简单地访问该属性,就像在本例中所做的那样。但是,这在这里不适用,因为该属性将在filter()
方法完成之前被覆盖。我如何知道哪个实例实际上正在运行我要检查的代码dispatchWorkItem.isCancelled
?
理想情况下,我想将新创建的参数DispatchWorkItem
作为该方法的附加参数提供filter()
。但这是不可能的,因为我会收到 …