Нет, вы должны использовать заголовки обертки C ++ (например, как <cstdio>
). Те, кто заботится обо всем этом для вас.
Если это заголовок, который не имеет этих, то да, вы захотите обернуть их в extern "C" {}
.
ETA : Стоит отметить, что многие реализации будут включать оболочку внутри файла .h, как показано ниже, так что вы можете уйти, не выполняя ее самостоятельно.
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
После нескольких попыток я наконец понял, как это легко сделать:
$.widget("ui.customsortable", $.extend({}, $.ui.sortable.prototype, {
_init: function(){
this.element.data('sortable', this.element.data('customsortable'));
return $.ui.sortable.prototype._init.apply(this, arguments);
}
// Override other methods here.
}));
$.ui.customsortable.defaults = $.extend({}, $.ui.sortable.defaults);
Главное - скопировать данные из вашего пользовательского виджета в исходный. Не забудьте использовать $ .ui. sortable.prototype. [метод переопределения] .apply (this, arguments); в каждом методе переопределения.
Холли, черт возьми!
Я не знаю, что вам нужно, когда вы говорите «расширить виджет».В моем случае я хотел изменить способ рендеринга виджета, и возня с классами CSS меня не удовлетворил. Это был не случай расширения поведения виджета, а скорее изменение поведения виджета.
Поэтому я отказался от метода рендеринга. Рассматриваемый виджет был автозаполнением jQueryUI , и переопределение выглядело так:
function monkeyPatchAutocomplete() {
// don't really need this, but in case I did, I could store it and chain
var oldFn = $.ui.autocomplete.prototype._renderItem;
$.ui.autocomplete.prototype._renderItem = function( ul, item) {
// whatever
};
}
Я только что назвал это в $ (document) .ready ()
.
по теме:
- Могу ли я заменить или изменить функцию в виджете jQuery UI? Как?
- jQueryUI: как настроить индивидуальный формат результатов плагина автозаполнения?