如何覆盖 javascript 库函数?
How to override javascript library function?
我在我的 Symfony 应用程序中使用 Bootstrap datepicker library。我想用 removing/commenting 行 1132
和 1142
覆盖 bootstrap-datepicker.js
内的函数 updateNavArrows
所以 prev
当前消失的光标(当我我在 startDate
页面上,如今天一样)将始终存在。有没有更好的方法实现这个而无需修改原始源代码?
P.S:我尝试使用此 answer 来实施更改,但它似乎不起作用。
我以前见过这样的东西,希望对你有帮助。
var RealupdateNavArrows = updateNavArrows;
updateNavArrows = function() {
alert("function overrided");
return RealupdateNavArrows();
}
正如您在源代码中看到的那样 here 他们只是删除或添加 disabled
class 到 next
和 prev
按钮
this.picker.find('.prev').toggleClass('disabled', prevState);
this.picker.find('.next').toggleClass('disabled', nextState);
这个 disabled
class 只是将按钮的可见性设置为隐藏,如您所见 here
.prev, .next {
&.disabled {
visibility: hidden;
}
}
因此覆盖 css 样式以设置 visibility:visible
应该可行
我在我的 Symfony 应用程序中使用 Bootstrap datepicker library。我想用 removing/commenting 行 1132
和 1142
覆盖 bootstrap-datepicker.js
内的函数 updateNavArrows
所以 prev
当前消失的光标(当我我在 startDate
页面上,如今天一样)将始终存在。有没有更好的方法实现这个而无需修改原始源代码?
P.S:我尝试使用此 answer 来实施更改,但它似乎不起作用。
我以前见过这样的东西,希望对你有帮助。
var RealupdateNavArrows = updateNavArrows;
updateNavArrows = function() {
alert("function overrided");
return RealupdateNavArrows();
}
正如您在源代码中看到的那样 here 他们只是删除或添加 disabled
class 到 next
和 prev
按钮
this.picker.find('.prev').toggleClass('disabled', prevState);
this.picker.find('.next').toggleClass('disabled', nextState);
这个 disabled
class 只是将按钮的可见性设置为隐藏,如您所见 here
.prev, .next {
&.disabled {
visibility: hidden;
}
}
因此覆盖 css 样式以设置 visibility:visible
应该可行