我使用jquery autocomplete
看起来像我的代码,调用插件,不好。有没有更简单的方法来调用jquery autocomplete
JS
$(document).ready(function(){
$("#m_occupation").autocomplete("search/moccupation.php", {
selectFirst: true
});
$("#foccupation").autocomplete("search/f_occupation.php", {
selectFirst: true
});
$("#g_address").autocomplete("search/g_address.php", {
selectFirst: true
});
$("#relationship").autocomplete("search/relationship.php", {
selectFirst: true
});
});
答案 0 :(得分:0)
你所拥有的并不是非常糟糕。如果你只是一次初始化这些自动复合词,那么它总体来说很可读,尽管你确实有一些重复。
缓存您的jQuery对象以供将来使用。在上面的代码段中,您只引用一次jQuery对象(例如$("#m_occupation")
),但在真正的Web应用程序中,有& #39;你很有可能会更多地使用它。缓存有助于减少jQuery查找操作的数量,即使它不太可能显着提高用户的性能,也是一种很好的做法。
缓存您的选项对象。您多次重复您的选项声明;只需声明一个autocompleteOptions
对象并完成它。
重构函数初始化。如果您真的觉得自动完成初始化很难,或者很复杂,或者经常编辑,请将其设为单个函数。未来的全局初始化编辑可以进行一次而不是多次。
将代码考虑在内的代码重做如下:
var initAutocomplete = function($el, dataUrl) {
var autocompleteOptions = { selectFirst: true };
$el.autocomplete(dataUrl, autocompleteOptions);
};
$(document).ready(function(){
var $m_occupation, $foccupation, $g_address, $relationship;
$m_occupation = $('#m_occupation');
initAutocomplete($m_occupation, "search/moccupation.php");
$foccupation = $('#foccupation');
initAutocomplete($foccupation, "search/f_occupation.php");
$g_address = $('#g_address');
initAutocomplete($g_address, "search/g_address.php");
$relationship = $('#relationship');
initAutocomplete($relationship, "search/relationship.php");
});
您可以通过使用单个字符串来表示从中收集数据的DOM ID和URL,从技术上进一步优化,但根据我的经验,这会在维护中出现问题。所以我不会把那些太紧密地结合在一起。