我正在尝试编写一个自动完成的jQuery插件。
所需用法:
$('.advancedSelect').advancedSelect({/*plugin options*/}).change(function(){})/*.otherJQueryMethods*/;
实施:
$.fn.advancedSelect = function({
return this.each(function(){
var $advSel = $('<input/>');
var $el = $(this).after($advSel).hide();
/* my codes on desired functionalities */
/* how is it possible to trigger the chained change method */
});
});
答案 0 :(得分:2)
在对我即将删除的答案的评论中(因为它回答了一个问题,而不是你的真实问题,事实证明),你已经说过:
我想知道我们是否可以使用这样的语法:
$('.advancedSelect').advancedSelect({/*plugin options*/}).onChange(function(){}).css({})
- 并且
.css
我的意思是任何其他jQuery的方法。
我建议这样做:
$('.advancedSelect').advancedSelect({/*other plugin options*/, onChange: function(){}}).css({})
或者这个:
$('.advancedSelect').advancedSelect({/*plugin options*/}).advancedSelect("onChange", function(){}).css({})
......对第一个人有相当强烈的偏好。 : - )
重新启动第一个选项,你看到很多的附件是一个可选的“选项”方法,你可以在以后用它来改变选项::
// Initial setup
$('.advancedSelect').advancedSelect({/*other plugin options*/, onChange: function(){}}).css({})
// Later, I need to change something
$('.advancedSelect').advancedSelect("options", { onChange: function(){}});
旁注:如果这个change
类方法是注册更改处理程序,为什么不使用jQuery的change
(或on
和一些特定于插件的事件名称)并且你的插件引发了一个事件?这就是我如何在插件中处理任何与事件相关的事情。例如,看看bootstrap使用shown.bs.modal
等等。