2011-03-27 3 views
2

Я пытался сделатьКак создать последовательность функций?

myfun(params, 
    function(){ 
     //something happen 
    } 
); 

, но он не работает, и я абсолютно не знаю, почему, и я схожу с ума. Я продолжаю стучать головой по проблеме через несколько недель, и мне действительно нужна помощь, потому что я не очень хорошо разбираюсь в синтаксисе Jquery.

То, что я пытаюсь достичь, является: Запуск функции, которая проверяет, если вы находитесь в области круга, если вы делаете, а затем запускаете последовательность функций один за другим (в этом случае показываете серию анимации) , И я не могу сделать «один за другим».

Я пытаюсь это сделать, потому что в сафари, когда вы делаете ссылку вокруг с радиусом границы, и вы хотите навести на элемент, он по-прежнему ведет себя как квадрат. И я бы не хотел использовать графические карты.

Кроме того, я не могу повторно использовать одну и ту же функцию, чтобы проверять зависание внутри области круга более одного раза (не спрашивайте меня, почему, я пытался понять, но я недостаточно умный или достаточно способен понять), поэтому мой единственный последний ресурс - попытаться вызвать событие на основе последовательности.

aniCircle это функция, где я хочу вложить свои последовательности анимаций. Это то, как она выглядит функции:

$("#cv").hover( 
    function(){ 
     $("#sliders .circle").css("z-index","6"); 

     aniCircle(1, $(this), "#slider1", {"opacity":"0"},{"opacity":"1"}, 0, speed2, 
      function(){$("#slider2").delay(speed2).animate({"opacity":"1"},speed2)} 
     ); 

    }, 
    function(){ 

     $("#slider1").animate({"opacity":"0"},speed2) 
     $("#slider2").delay(speed2).animate({"opacity":"0"},speed2) 

    } 
); 

Здесь есть веб-странице http://life-is-simple.co.uk/test5/index.html

Запомнить меня на FF4 она отлично работает область круга, то на WebKit браузер, что он не делает, и я хотите исправить это с помощью JS.

Спасибо за вашу помощь

+0

Это синтаксис Javascript. Javascript это язык, JQuery является библиотека. –

+0

да, но JQuery должен быть написан в конкретном Кстати, я написал синтаксис, если вы скажете мне, что вы не можете использовать такую ​​фразу, я буду изменять свой контент. – Littlemad

+0

Не более чем на Javascript, поэтому он называется синтаксисом Javascript. Синтаксис, используемый с jQuery, не уникален to jQuery. –

ответ

0

Извините, но в будущем я должен переделать этот вопрос, я заметил, что без более простого примера и без времени посвятить свой сайт (я был довольно занят различными проектами всю неделю и даже после нормального рабочего дня), я не хочу оставлять свой вопрос открытым только ради того, чтобы оставаться открытым, не пытаясь и не проверять ваши решения.

Прошу прощения за потерю времени, которое я потратил на этот вопрос. Я постараюсь быть более организованным в будущем. Спасибо вам большое за ваше время.

Я пытался его закрыл, но Couse щедрости я не могу закрыть :(

+0

это плохая форма. Вы дали щедрость для своего Люди пытались помочь вам, возможно, частично из-за щедрости. Конечно, вы не должны закрывать ее. Вам следует поощрять дальнейшие ответы и присуждать награду тому, который вам больше всего нравится, или позволить системе выделять 1/2 вашей щедрости автоматически отвечать на самый высокий голос –

+0

Я согласен, мне не нравится, что выбрали это решение. Я лично не забочусь о точках, я могу всегда восстанавливаться позже. Я не должны следовать и проверять предложение каждого. Как связаться с администратором и попросить его о помощи? Я не возражаю, перепродаю свои баллы людям, или проголосую за их ответы, или, по крайней мере, продолжаю открывать это намного дольше, я действительно схожу с работы, но мне не нравится голосовать за ответ, не будучи уверенным, что ответ был правый (я не хочу создавать неправильный прецедент контента для вопроса) – Littlemad

+0

в этом случае, просто оставьте его и позвольте системе присуждать награду за ответ с более высокими приоритетами. –

0

JQuery animate() takes a "complete" callback. Вы можете вложить последовательность, такую ​​как:

$("#slider1").animate(
    {"opacity":"0", 
    "speed": speed2, 
    "complete": second_animation 
    } 
); 

function second_animation() { 
$("#slider2").animate()... 
} 

Анимация слайдера2 не начнется, пока анимация слайдера не будет завершена.

+0

Моя функция aniCircle не является анимацией, она содержит анимацию после различных проверок, а обратный вызов (я думаю) не работает. Пожалуйста, посмотрите на код этой функции – Littlemad

0

Похоже, что вы пытаетесь что-то вроде:

var outer = function(){ 
var test = function(){ 
    alert('fired 1'); 
}() 
var test2 = function(){ 
    alert('fired 2'); 
}() 
} 

Обратите внимание на «()» после объявления метода, который делает огонь немедленно. Они будут срабатывать один за другим, но если вы примените код к ним, который будет асинхронно срабатывать, вам нужно будет использовать метод обратного вызова.

0

По умолчанию JavaScript не имеет «функциональных последовательностей». Функция анимации jQuery() может обрабатывать функции обратного вызова, потому что она закодирована для вызова функции обратного вызова, когда анимация завершена.

Я думаю, что вы ищете что-то вроде:

function setupThenCall(param1, param2, fn) { 
    // do some setup/processing 

    // call callback function after setup 
    fn(); 
} 

Если вы делаете что-то более сложное, например, несколько уровней обратных вызовов, вы можете использовать jQuery's queue().

2

Я думаю, что использование jquery .queue() может решить вашу проблему.

+0

Я бы как правило, согласны - http://stackoverflow.com/questions/1058158/can-somebody-explain-jquery-queue-to-me могут быть полезны для дополнительной документации ... – gnarf

Смежные вопросы