我有一个与在jQuery中应用函数的顺序相关的问题(它与我在stackoverflow上找到的其他问题有点不同)。
我有一个功能:
$(document).ready(function(){
loading();
});
function loading() {
// some code
$('.button1').click(function(){
function(first);
});
$('.button2').click(function(){
function(second);
});
$('.button3').click(function(){
function(third);
});
function (first) {
// code to execute 1
}
function (second) {
// code to execute 2
}
function (third) {
// code to execute 3
}
我的问题是,只有来自 function(third)的代码正在执行,无论我点击哪个按钮。因此,我需要将每个代码执行到功能(第三个)中以使其正常工作。我想根据点击的按钮做一些不同的操作,而且我不知道它为什么不能按照我上面提到的顺序工作。也许有人可以帮助我?
这就是我的全部功能:
$(document).ready(function(){
loading();
});
function loading() {
if (typeof history.pushState !== "undefined") {
var historyCount = 0;
$('.button').click(function(){
var getlink = $(this).attr('href');
goTo(getlink);
history.pushState(null, null, getlink);
return false;
});
$('.projects').click(function(){
var projects = $(this).attr('href');
goTo(projects);
history.pushState(null, null, projects);
return false;
});
$('.home').click(function(){
var homepage = $(this).attr('href');
goTo(homepage);
history.pushState(null, null, homepage);
return false;
});
}
}
function goTo(homepage) {
$.ajax({url: homepage, success: function(data) {
$('.container_right_wrapper').hide('slide', {direction: 'left'}, 200, function(){
$(this).html(data).show('slide', {direction: 'right'}, 200);
$( ".pageicon img" ).remove();
var image = $('.container_right_wrapper .img').prop('src');
$('.pageicon').append('<img src="'+image+'"/>');
});
}
});
}
function goTo(projects) {
$.ajax({url: projects,success: function(data) {
$('.container_right_wrapper').hide('slide', {direction: 'left',easing:'linear'}, 200, function(){
$(this).html(data).show('slide', {direction: 'right'}, 200);
carousel();
$( ".pageicon img" ).remove();
var image = $('.container_right_wrapper .img').prop('src') ;
$('.pageicon').append('<img src="'+image+'"/>');
});
}
});
}
function goTo(getlink) {
$.ajax({url: getlink,success: function(data) {
$('.container_right_wrapper').hide('slide', {direction: 'left'}, 300, function(){
$(this).html(data).show('slide', {direction: 'right'}, 300);
slider();
$( ".pageicon img" ).remove();
var image = $('.container_right_wrapper .img').prop('src') ;
$('.pageicon').append('<img src="'+image+'"/>');
});
}
});
}
再次:当我点击.projects时,我想要旋转木马();插件已执行,但它无法正常工作。我需要将它与slider()一起放在最后一个函数中;使它工作,我不知道为什么?对不起,伙计们,我在第一个例子中犯了一个错误,这造成了一点点破坏......
答案 0 :(得分:1)
似乎你已经以错误的方式定义了你的功能,你可以这样做:
$(document).ready(function () {
// some code
$('.button1').click(function () {
first();
});
$('.button2').click(function () {
second();
});
$('.button3').click(function () {
third();
});
function first() {
// code to execute 1
}
function second() {
// code to execute 2
}
function third() {
// code to execute 3
}
});