Javascript 未捕获的TypeError:$(…).find(…).once不是bootstrap/js/bootstrap.js中的函数吗?
我已经安装了用于构建响应主题的引导主题,然后我在主题项目中安装了jquery_更新模块作为文档,除了下面的js错误之外,一切都正常。inspect elements控制台中出现错误: 未捕获的TypeError:$(…).find(…).once不是中的函数 bootstrap/js/bootstrap.js?o5l669 有人能帮我吗? 这是Javascript 未捕获的TypeError:$(…).find(…).once不是bootstrap/js/bootstrap.js中的函数吗?,javascript,twitter-bootstrap,drupal,drupal-7,drupal-theming,Javascript,Twitter Bootstrap,Drupal,Drupal 7,Drupal Theming,我已经安装了用于构建响应主题的引导主题,然后我在主题项目中安装了jquery_更新模块作为文档,除了下面的js错误之外,一切都正常。inspect elements控制台中出现错误: 未捕获的TypeError:$(…).find(…).once不是中的函数 bootstrap/js/bootstrap.js?o5l669 有人能帮我吗? 这是bootstrap.js: /** * @file * bootstrap.js * * Provides general enhancement
bootstrap.js
:
/**
* @file
* bootstrap.js
*
* Provides general enhancements and fixes to Bootstrap's JS files.
*/
var Drupal = Drupal || {};
(function($, Drupal){
"use strict";
Drupal.behaviors.bootstrap = {
attach: function(context) {
// Provide some Bootstrap tab/Drupal integration.
$(context).find('.tabbable').once('bootstrap-tabs', function () {
var $wrapper = $(this);
var $tabs = $wrapper.find('.nav-tabs');
var $content = $wrapper.find('.tab-content');
var borderRadius = parseInt($content.css('borderBottomRightRadius'), 10);
var bootstrapTabResize = function() {
if ($wrapper.hasClass('tabs-left') || $wrapper.hasClass('tabs-right')) {
$content.css('min-height', $tabs.outerHeight());
}
};
// Add min-height on content for left and right tabs.
bootstrapTabResize();
// Detect tab switch.
if ($wrapper.hasClass('tabs-left') || $wrapper.hasClass('tabs-right')) {
$tabs.on('shown.bs.tab', 'a[data-toggle="tab"]', function (e) {
bootstrapTabResize();
if ($wrapper.hasClass('tabs-left')) {
if ($(e.target).parent().is(':first-child')) {
$content.css('borderTopLeftRadius', '0');
}
else {
$content.css('borderTopLeftRadius', borderRadius + 'px');
}
}
else {
if ($(e.target).parent().is(':first-child')) {
$content.css('borderTopRightRadius', '0');
}
else {
$content.css('borderTopRightRadius', borderRadius + 'px');
}
}
});
}
});
}
};
/**
* Bootstrap Popovers.
*/
Drupal.behaviors.bootstrapPopovers = {
attach: function (context, settings) {
if (settings.bootstrap && settings.bootstrap.popoverEnabled) {
var elements = $(context).find('[data-toggle="popover"]').toArray();
for (var i = 0; i < elements.length; i++) {
var $element = $(elements[i]);
var options = $.extend(true, {}, settings.bootstrap.popoverOptions, $element.data());
$element.popover(options);
}
}
}
};
/**
* Bootstrap Tooltips.
*/
Drupal.behaviors.bootstrapTooltips = {
attach: function (context, settings) {
if (settings.bootstrap && settings.bootstrap.tooltipEnabled) {
var elements = $(context).find('[data-toggle="tooltip"]').toArray();
for (var i = 0; i < elements.length; i++) {
var $element = $(elements[i]);
var options = $.extend(true, {}, settings.bootstrap.tooltipOptions, $element.data());
$element.tooltip(options);
}
}
}
};
/**
* Anchor fixes.
*/
var $scrollableElement = $();
Drupal.behaviors.bootstrapAnchors = {
attach: function(context, settings) {
var i, elements = ['html', 'body'];
if (!$scrollableElement.length) {
for (i = 0; i < elements.length; i++) {
var $element = $(elements[i]);
if ($element.scrollTop() > 0) {
$scrollableElement = $element;
break;
}
else {
$element.scrollTop(1);
if ($element.scrollTop() > 0) {
$element.scrollTop(0);
$scrollableElement = $element;
break;
}
}
}
}
if (!settings.bootstrap || !settings.bootstrap.anchorsFix) {
return;
}
var anchors = $(context).find('a').toArray();
for (i = 0; i < anchors.length; i++) {
if (!anchors[i].scrollTo) {
this.bootstrapAnchor(anchors[i]);
}
}
$scrollableElement.once('bootstrap-anchors', function () {
$scrollableElement.on('click.bootstrap-anchors', 'a[href*="#"]:not([data-toggle],[data-target])', function(e) {
this.scrollTo(e);
});
});
},
bootstrapAnchor: function (element) {
element.validAnchor = element.nodeName === 'A' && (location.hostname === element.hostname || !element.hostname) && element.hash.replace(/#/,'').length;
element.scrollTo = function(event) {
var attr = 'id';
var $target = $(element.hash);
if (!$target.length) {
attr = 'name';
$target = $('[name="' + element.hash.replace('#', '') + '"');
}
var offset = $target.offset().top - parseInt($scrollableElement.css('paddingTop'), 10) - parseInt($scrollableElement.css('marginTop'), 10);
if (this.validAnchor && $target.length && offset > 0) {
if (event) {
event.preventDefault();
}
var $fakeAnchor = $('<div/>')
.addClass('element-invisible')
.attr(attr, $target.attr(attr))
.css({
position: 'absolute',
top: offset + 'px',
zIndex: -1000
})
.appendTo(document);
$target.removeAttr(attr);
var complete = function () {
location.hash = element.hash;
$fakeAnchor.remove();
$target.attr(attr, element.hash.replace('#', ''));
};
if (Drupal.settings.bootstrap.anchorsSmoothScrolling) {
$scrollableElement.animate({ scrollTop: offset, avoidTransforms: true }, 400, complete);
}
else {
$scrollableElement.scrollTop(offset);
complete();
}
}
};
}
};
})(jQuery, Drupal);
/**
*@file
*bootstrap.js
*
*提供对引导的JS文件的常规增强和修复。
*/
var Drupal=Drupal | |{};
(函数($,Drupal){
“严格使用”;
Drupal.behaviors.bootstrap={
附加:函数(上下文){
//提供一些引导选项卡/Drupal集成。
$(上下文).find('.tabbable').once('bootstrap-tabs',函数(){
var$wrapper=$(这个);
var$tabs=$wrapper.find('.nav tabs');
var$content=$wrapper.find('.tab content');
var borderRadius=parseInt($content.css('borderBottomRightRadius'),10);
var bootstrapTabResize=函数(){
if($wrapper.hasClass('tabs-left')| |$wrapper.hasClass('tabs-right')){
$content.css('min-height',$tabs.outerHeight());
}
};
//为左侧和右侧选项卡的内容添加最小高度。
bootstrapTabResize();
//检测标签开关。
if($wrapper.hasClass('tabs-left')| |$wrapper.hasClass('tabs-right')){
$tabs.on('show.bs.tab','a[data toggle=“tab”]”,函数(e){
bootstrapTabResize();
if($wrapper.hasClass('tabs-left')){
if($(e.target).parent()是(':first child')){
$content.css('borderTopLeftRadius','0');
}
否则{
$content.css('borderTopLeftRadius',borderRadius+'px');
}
}
否则{
if($(e.target).parent()是(':first child')){
$content.css('borderTopRightRadius','0');
}
否则{
$content.css('borderTopRightRadius',borderRadius+'px');
}
}
});
}
});
}
};
/**
*引导弹出框。
*/
Drupal.behaviors.bootstrapPopovers={
附加:功能(上下文、设置){
if(settings.bootstrap&&settings.bootstrap.popopoverenabled){
var elements=$(context).find('[data toggle=“popover”]').toArray();
对于(var i=0;i0){
$scrollableElement=$element;
打破
}
否则{
$element.scrollTop(1);
如果($element.scrollTop()>0){
$element.scrollTop(0);
$scrollableElement=$element;
打破
}
}
}
}
如果(!settings.bootstrap | |!settings.bootstrap.anchorsFix){
返回;
}
var archors=$(context.find('a').toArray();
对于(i=0;i<0.length;i++){
如果(!anchors[i].scrollTo){
这个.bootstrapAnchor(锚[i]);
}
}
$scrollableElement.once('bootstrap-anchors',函数(){
$scrollableElement.on('click.bootstrap anchors','a[href*=“#”]:not([data toggle],[data target]),函数(e){
本条。滚动至(e);
});
});
},
bootstrapAnchor:函数(元素){
element.validAnchor=element.nodeName=='A'&(location.hostname===element.hostname | | |!element.hostname)&&element.hash.replace(/#/,'').length;
element.scrollTo=函数(事件){
var attr='id';
var$target=$(element.hash);
如果(!$target.length){
attr='name';
$target=$('[name=“”+element.hash.replace('#','');
}
var offset=$target.offset().top-parseInt($scrollableElement.css('paddingTop'),10)-parseInt($scrollableElement.css('marginTop'),10);
如果(this.validAnchor&&$target.length&&offset>0){
如果(事件){
event.preventDefault();
}
变量$fakeAnchor=$('')
.addClass('元素不可见')
.attr(attr,$target.attr(attr))
.css({
位置:'绝对',
顶部:偏移量+‘px’,
锌指数:-1000
})
.附件(文件);
$target.removeAttr(attr);
var complete=函数(){
location.hash=element.hash;
$fakeAnchor.remove();
$target.attr(attr,element.hash.replace('#','');
};
if(Drupal.settings.bootstrap.anchorsSmoothScrolling){
$scrollableElement.animate({scrollTop:offset,avoidTransforms:true},400,complete);
}
否则{
$scrollableElement.scrollTop(偏移量);
完全();