为什么在jQuery / bootstrap中有两种不同的语法?

时间:2016-05-31 17:10:56

标签: javascript jquery twitter-bootstrap

我发现了这两个不同事件的两个例子:

$('.datepickerSelect').datepicker().on('changeDate', myFunction );
$(".datepickerSelect").datepicker( 'option' , 'onSelect', myFunction );

它们也可以互换吗?

$('.datepickerSelect').datepicker().on('onSelect', myFunction   );
$(".datepickerSelect").datepicker( 'option' , 'changeDate', myFunction );

1 个答案:

答案 0 :(得分:0)

这是将事件侦听器附加到元素的语法。它用于jquery中的所有地方

$('.datepickerSelect').datepicker().on('changeDate', myFunction );

优点是您可以添加多个处理程序:

$('.datepickerSelect').datepicker().on('changeDate', otherFunction );
$('.datepickerSelect').datepicker().on('changeDate', yetAnotherFunction);

另一种语法是:

  $('.datepickerSelect').datepicker({'changeDate', myFunction });

此语法表示在初始化datepicker期间为changeDate提供处理程序作为配置对象的一部分。您只能以这种方式附加一个处理程序。

这相当于这样做

$('.datepickerSelect').datepicker('option','changeDate', myFunction);

此语法意味着您忘记在初始化datepicker期间在config对象中添加changeDate处理程序,因此您现在要添加它(或者您可能希望替换初始化期间添加的现有处理程序)。