gpt4 book ai didi

jquery - 未捕获的 TypeError : $(. ..).responsiveSlides 不是函数

转载 作者:行者123 更新时间:2023-12-01 02:41:05 26 4
gpt4 key购买 nike

我有一个 joomla 网站。我使用了一个模板来使用。主页幻灯片不起作用。 >检查元素>控制台显示错误:

Uncaught TypeError: $(...).responsiveSlides is not a function

我相信它指的是我认为的这段代码:

slideshow.php:

<script>
// You can also use "$(window).load(function() {"
$(function () {
$("#slider4").responsiveSlides({
auto: true,
pager: false,
nav: true,
speed: 500,
namespace: "callbacks",
before: function () {
$('.events').append("<li>before event fired.</li>");
},
after: function () {
$('.events').append("<li>after event fired.</li>");
}
});

});
</script>

<?php
$slide1 = htmlspecialchars($this->params->get('slide1'));
$slide2 = htmlspecialchars($this->params->get('slide2'));
$slide3 = htmlspecialchars($this->params->get('slide3'));
$slide4 = htmlspecialchars($this->params->get('slide4'));
$slide5 = htmlspecialchars($this->params->get('slide5'));
$slide6 = htmlspecialchars($this->params->get('slide6'));
$slide7 = htmlspecialchars($this->params->get('slide7'));
$slide8 = htmlspecialchars($this->params->get('slide8'));

$NumberOfSlides = htmlspecialchars($this->params->get('NumberOfSlides'));
?>


<div class="callbacks_container">
<ul class="rslides" id="slider4">

<?php if ($slide1 != null ) : ?><li><img src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($slide1); ?>" /><p class="caption"><?php echo ($slidedesc1); ?></p></li>
<?php else : ?><li><img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/slideshow/1.jpg" alt="1" /><p class="caption"><?php if ($this->params->get( 'slidedesc1' )) : ?><?php echo ($slidedesc1); ?><?php endif; ?></p></li><?php endif; ?>
<?php if ($slide2 != null ) : ?><li><img src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($slide2); ?>" /><p class="caption"><?php echo ($slidedesc2); ?></p></li>
<?php else : ?><li><img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/slideshow/2.jpg" alt="2" /><p class="caption"><?php if ($this->params->get( 'slidedesc2' )) : ?><?php echo ($slidedesc2); ?><?php endif; ?></p></li><?php endif; ?>
<?php if ($slide3 != null ) : ?><li><img src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($slide3); ?>" /><p class="caption"><?php echo ($slidedesc3); ?></p></li>
<?php else : ?><li><img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/slideshow/3.jpg" alt="3" /><p class="caption"><?php if ($this->params->get( 'slidedesc3' )) : ?><?php echo ($slidedesc3); ?><?php endif; ?></p></li><?php endif; ?>
<?php if ($slide4 != null ) : ?><li><img src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($slide4); ?>" /><p class="caption"><?php echo ($slidedesc4); ?></p></li>
<?php else : ?><li><img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/slideshow/4.jpg" alt="4" /><p class="caption"><?php if ($this->params->get( 'slidedesc4' )) : ?><?php echo ($slidedesc4); ?><?php endif; ?></p></li><?php endif; ?>

<?php if ($NumberOfSlides >= 5 ) : ?><?php if ($slide5 != null ) : ?><li><img src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($slide5); ?>" /><p class="caption"><?php echo ($slidedesc5); ?></p></li><?php endif; ?><?php endif; ?>
<?php if ($NumberOfSlides >= 6 ) : ?><?php if ($slide6 != null ) : ?><li><img src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($slide6); ?>" /><p class="caption"><?php echo ($slidedesc6); ?></p></li><?php endif; ?><?php endif; ?>
<?php if ($NumberOfSlides >= 7 ) : ?><?php if ($slide7 != null ) : ?><li><img src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($slide7); ?>" /><p class="caption"><?php echo ($slidedesc7); ?></p></li><?php endif; ?><?php endif; ?>
<?php if ($NumberOfSlides >= 8 ) : ?><?php if ($slide8 != null ) : ?><li><img src="<?php echo $this->baseurl ?>/<?php echo htmlspecialchars($slide8); ?>" /><p class="caption"><?php echo ($slidedesc8); ?></p></li><?php endif; ?><?php endif; ?>

</ul>
</div>

我认为这就是问题的根源。我对 jquery 不熟悉。我需要更改什么才能使其正常工作?

这是它应该引用的js函数:

responsiveslides.js:

/*! ResponsiveSlides.js v1.54
* http://responsiveslides.com
* http://viljamis.com
*
* Copyright (c) 2011-2012 @viljamis
* Available under the MIT license
*/

/*jslint browser: true, sloppy: true, vars: true, plusplus: true, indent: 2 */

(function ($, window, i) {
$.fn.responsiveSlides = function (options) {

// Default settings
var settings = $.extend({
"auto": false, // Boolean: Animate automatically, true or false
"speed": 500, // Integer: Speed of the transition, in milliseconds
"timeout": 4000, // Integer: Time between slide transitions, in milliseconds
"pager": true, // Boolean: Show pager, true or false
"nav": true, // Boolean: Show navigation, true or false
"random": false, // Boolean: Randomize the order of the slides, true or false
"pause": true, // Boolean: Pause on hover, true or false
"pauseControls": true, // Boolean: Pause when hovering controls, true or false
"prevText": "Previous", // String: Text for the "previous" button
"nextText": "Next", // String: Text for the "next" button
"maxwidth": "", // Integer: Max-width of the slideshow, in pixels
"navContainer": "", // Selector: Where auto generated controls should be appended to, default is after the <ul>
"manualControls": "", // Selector: Declare custom pager navigation
"namespace": "rslides", // String: change the default namespace used
"before": $.noop, // Function: Before callback
"after": $.noop // Function: After callback
}, options);

return this.each(function () {

// Index for namespacing
i++;

var $this = $(this),

// Local variables
vendor,
selectTab,
startCycle,
restartCycle,
rotate,
$tabs,

// Helpers
index = 0,
$slide = $this.children(),
length = $slide.size(),
fadeTime = parseFloat(settings.speed),
waitTime = parseFloat(settings.timeout),
maxw = parseFloat(settings.maxwidth),

// Namespacing
namespace = settings.namespace,
namespaceIdx = namespace + i,

// Classes
navClass = namespace + "_nav " + namespaceIdx + "_nav",
activeClass = namespace + "_here",
visibleClass = namespaceIdx + "_on",
slideClassPrefix = namespaceIdx + "_s",

// Pager
$pager = $("<ul class='" + namespace + "_tabs " + namespaceIdx + "_tabs' />"),

// Styles for visible and hidden slides
visible = {"float": "left", "position": "relative", "opacity": 1, "zIndex": 2},
hidden = {"float": "none", "position": "absolute", "opacity": 0, "zIndex": 1},

// Detect transition support
supportsTransitions = (function () {
var docBody = document.body || document.documentElement;
var styles = docBody.style;
var prop = "transition";
if (typeof styles[prop] === "string") {
return true;
}
// Tests for vendor specific prop
vendor = ["Moz", "Webkit", "Khtml", "O", "ms"];
prop = prop.charAt(0).toUpperCase() + prop.substr(1);
var i;
for (i = 0; i < vendor.length; i++) {
if (typeof styles[vendor[i] + prop] === "string") {
return true;
}
}
return false;
})(),

// Fading animation
slideTo = function (idx) {
settings.before(idx);
// If CSS3 transitions are supported
if (supportsTransitions) {
$slide
.removeClass(visibleClass)
.css(hidden)
.eq(idx)
.addClass(visibleClass)
.css(visible);
index = idx;
setTimeout(function () {
settings.after(idx);
}, fadeTime);
// If not, use jQuery fallback
} else {
$slide
.stop()
.fadeOut(fadeTime, function () {
$(this)
.removeClass(visibleClass)
.css(hidden)
.css("opacity", 1);
})
.eq(idx)
.fadeIn(fadeTime, function () {
$(this)
.addClass(visibleClass)
.css(visible);
settings.after(idx);
index = idx;
});
}
};

// Random order
if (settings.random) {
$slide.sort(function () {
return (Math.round(Math.random()) - 0.5);
});
$this
.empty()
.append($slide);
}

// Add ID's to each slide
$slide.each(function (i) {
this.id = slideClassPrefix + i;
});

// Add max-width and classes
$this.addClass(namespace + " " + namespaceIdx);
if (options && options.maxwidth) {
$this.css("max-width", maxw);
}

// Hide all slides, then show first one
$slide
.hide()
.css(hidden)
.eq(0)
.addClass(visibleClass)
.css(visible)
.show();

// CSS transitions
if (supportsTransitions) {
$slide
.show()
.css({
// -ms prefix isn't needed as IE10 uses prefix free version
"-webkit-transition": "opacity " + fadeTime + "ms ease-in-out",
"-moz-transition": "opacity " + fadeTime + "ms ease-in-out",
"-o-transition": "opacity " + fadeTime + "ms ease-in-out",
"transition": "opacity " + fadeTime + "ms ease-in-out"
});
}

// Only run if there's more than one slide
if ($slide.size() > 1) {

// Make sure the timeout is at least 100ms longer than the fade
if (waitTime < fadeTime + 100) {
return;
}

// Pager
if (settings.pager && !settings.manualControls) {
var tabMarkup = [];
$slide.each(function (i) {
var n = i + 1;
tabMarkup +=
"<li>" +
"<a href='#' class='" + slideClassPrefix + n + "'>" + n + "</a>" +
"</li>";
});
$pager.append(tabMarkup);

// Inject pager
if (options.navContainer) {
$(settings.navContainer).append($pager);
} else {
$this.after($pager);
}
}

// Manual pager controls
if (settings.manualControls) {
$pager = $(settings.manualControls);
$pager.addClass(namespace + "_tabs " + namespaceIdx + "_tabs");
}

// Add pager slide class prefixes
if (settings.pager || settings.manualControls) {
$pager.find('li').each(function (i) {
$(this).addClass(slideClassPrefix + (i + 1));
});
}

// If we have a pager, we need to set up the selectTab function
if (settings.pager || settings.manualControls) {
$tabs = $pager.find('a');

// Select pager item
selectTab = function (idx) {
$tabs
.closest("li")
.removeClass(activeClass)
.eq(idx)
.addClass(activeClass);
};
}

// Auto cycle
if (settings.auto) {

startCycle = function () {
rotate = setInterval(function () {

// Clear the event queue
$slide.stop(true, true);

var idx = index + 1 < length ? index + 1 : 0;

// Remove active state and set new if pager is set
if (settings.pager || settings.manualControls) {
selectTab(idx);
}

slideTo(idx);
}, waitTime);
};

// Init cycle
startCycle();
}

// Restarting cycle
restartCycle = function () {
if (settings.auto) {
// Stop
clearInterval(rotate);
// Restart
startCycle();
}
};

// Pause on hover
if (settings.pause) {
$this.hover(function () {
clearInterval(rotate);
}, function () {
restartCycle();
});
}

// Pager click event handler
if (settings.pager || settings.manualControls) {
$tabs.bind("click", function (e) {
e.preventDefault();

if (!settings.pauseControls) {
restartCycle();
}

// Get index of clicked tab
var idx = $tabs.index(this);

// Break if element is already active or currently animated
if (index === idx || $("." + visibleClass).queue('fx').length) {
return;
}

// Remove active state from old tab and set new one
selectTab(idx);

// Do the animation
slideTo(idx);
})
.eq(0)
.closest("li")
.addClass(activeClass);

// Pause when hovering pager
if (settings.pauseControls) {
$tabs.hover(function () {
clearInterval(rotate);
}, function () {
restartCycle();
});
}
}

// Navigation
if (settings.nav) {
var navMarkup =
"<a href='#' class='" + navClass + " prev'>" + settings.prevText + "</a>" +
"<a href='#' class='" + navClass + " next'>" + settings.nextText + "</a>";

// Inject navigation
if (options.navContainer) {
$(settings.navContainer).append(navMarkup);
} else {
$this.after(navMarkup);
}

var $trigger = $("." + namespaceIdx + "_nav"),
$prev = $trigger.filter(".prev");

// Click event handler
$trigger.bind("click", function (e) {
e.preventDefault();

var $visibleClass = $("." + visibleClass);

// Prevent clicking if currently animated
if ($visibleClass.queue('fx').length) {
return;
}

// Adds active class during slide animation
// $(this)
// .addClass(namespace + "_active")
// .delay(fadeTime)
// .queue(function (next) {
// $(this).removeClass(namespace + "_active");
// next();
// });

// Determine where to slide
var idx = $slide.index($visibleClass),
prevIdx = idx - 1,
nextIdx = idx + 1 < length ? index + 1 : 0;

// Go to slide
slideTo($(this)[0] === $prev[0] ? prevIdx : nextIdx);
if (settings.pager || settings.manualControls) {
selectTab($(this)[0] === $prev[0] ? prevIdx : nextIdx);
}

if (!settings.pauseControls) {
restartCycle();
}
});

// Pause when hovering navigation
if (settings.pauseControls) {
$trigger.hover(function () {
clearInterval(rotate);
}, function () {
restartCycle();
});
}
}

}

// Max-width fallback
if (typeof document.body.style.maxWidth === "undefined" && options.maxwidth) {
var widthSupport = function () {
$this.css("width", "100%");
if ($this.width() > maxw) {
$this.css("width", maxw);
}
};

// Init fallback
widthSupport();
$(window).bind("resize", function () {
widthSupport();
});
}

});

};
})(jQuery, this, 0);

最佳答案

而不是

<script>
// You can also use "$(window).load(function() {"
$(function () {

你可以使用

<script>
// You can also use "$(window).load(function() {"
jQuery(function ($) {

希望这有帮助

关于jquery - 未捕获的 TypeError : $(. ..).responsiveSlides 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34454734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com