如何在html上添加javascript函数
How to add javascript function on html?
我不知道我的代码出了什么问题。我无法在javascript中传递函数,[我不想将其内联]
我的问题是我的上一个按钮和下一个按钮不起作用,我也试图在上一个和下一个中设置return false以停止刷新页面,但它仍然在点击时刷新。
这是我的代码[请参阅我的评论]和我的代码笔:
$(document).ready(function slider() {
$('#img1').show('fade', 500);
$('#img1').delay(5000).hide("slide", { direction: 'left' }, 500);
});
var count = 2;
setInterval(function loop() {
var all = document.getElementsByTagName('li').length; // <-- i got the li elements so i did the same to prev and next
$('#img' + count).show('slide', { direction: 'right' }, 500);
$('#img' + count).delay(5500).hide('slide', { direction: 'left' }, 500);
if (count === all) {
count = 1;
} else {
count += 1;
}
}, 6500);
var sliderInt = 1;
var sliderNext = 2;
document.getElementsByClassName('prev').onclick = function prev() { // <-- not working
console.log('clicked prev');
var newSlide = sliderInt - 1;
showSlide(newSlide);
return false;
}
document.getElementsByClassName('next').onclick = function next() { // <-- not working
console.log('clicked next');
var newSlide = sliderInt + 1;
showSlide(newSlide);
return false;
}
function stopLoop() {
window.clearInterval(loop());
}
function showSlide(id) { // <-- this function doesn't work from prev and next
stopLoop(); // <-- I want to stop the loop() function when prev and next is clicked
if (id > count) {
id = 1;
} else if (id < 1) {
id = count;
}
$('li').hide('slide', { direction: 'left' }, 500);
$('#img' + id).show('slide', { direction: 'right' }, 500);
sliderInt = id;
sliderNext = id + 1;
window.slider(); // <-- I want to call the function slider here
}
修复演示将非常感谢:)
当您使用document.getElementsByClassName('prev').onclick
时,您得到了一个数组。像下面的一样使用它
document.getElementsByClassName('prev')[0].onclick
document.getElementsByClassName('next')[0].onclick
getElementsByClassName返回一个HTMLCollection。因此,您需要传递要添加onclick
函数的相关索引
document.getElementsByClassName('next')[0]
但这将只在集合中的第一个元素上附加事件。
一个更相关的例子是
var list = document.getElementsByClassName('next or prev');
for (var i = 0, len = list.length; i < len; i++) {
(function(i){ // creating closure
list[i].addEventListener('click',function(){
// code you want to execute on click of next or prev
}
}(i))
}
由于您已经在使用jquery,如果您使用类选择器,您可以避免所有这些
$('.next or .prev').on('click',function(event){
// relevant code
})
相关文章:
- 如何在ASP中为用户控件添加Javascript对象网
- 向Android浏览器添加JavaScript
- 如何在Opencart中动态添加JavaScript
- 如何根据需要优雅地添加javascript/css
- 在Android的Webview中添加Javascript
- Phonegap/Cordova:如何添加Javascript多点触摸事件
- 添加@javascript标记时,Cucumber中的HTTP身份验证失败
- 当我的表单中已经有一个操作时添加JavaScript
- 当我添加JavaScript时,链接按钮停止工作
- Ruby on Rails 4:在 Rails Web 应用程序中添加 Javascript 文件时遇到问题
- 可以'无法正确添加JavaScript值
- 在页面上添加javascript后呈现指令
- 如何在我更改输入时添加javascript操作'的内容
- 在Dotnet Highchart中添加javascript函数
- 如何在R Shiny应用程序中添加JavaScript来更改CSS文件
- 基于使用的ASP MVC EditorFor/Partial模板添加JavaScript引用
- 添加javascript变量以发送数据
- 动态添加javascript事件监听器,做一些无法解释的事情
- 使用wp_enque_script()在Wordpress-functions.php中添加Javascript
- 添加JavaScript onClick以动态生成asp按钮