Как остановить ссылку, перешедшую, пока jQuery .animate не имеет завершенный?

Не используйте стандартные фиктивные переменные! Стандартное масштабирование выполняется для преобразования непрерывной переменной в переменную со средним 0 и стандартным отклонением 1.
Поскольку вы использовали кодирование One Hot, категориальные переменные теперь состоят только из 1 и 0 (1 для True, если эта двоичная переменная присутствует 0 для False else):

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

10
задан jon 20 July 2017 в 10:41
поделиться

6 ответов

Также необходимо возвратить false или предотвратить действие по умолчанию события щелчка привязки иначе, браузер будет просто следовать за href. Так или иначе согласованный живая демонстрация лучше, чем 1 000 слов.

См. живую демонстрацию здесь

например,

 $('#myLink').click( function(ev){
   //prevent the default action of the event, this will stop the href in the anchor being followed
   //before the animation has started, u can also use return false;
   ev.preventDefault();
   //store a reference to the anchor tag
   var $self=$(this);
   //get the image and animate assuming the image is a direct child of the anchor, if not use .find
   $self.children('img').animate( {height:"10px"}, function(){
       //now get the anchor href and redirect the browser
       document.location = $self.attr('href');
   });
 });
31
ответ дан 3 December 2019 в 14:25
поделиться

на всякий случай любой интересуется этим изменением...

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

javascript/jquery:

print(" $(function()
    {
        $('#myLink').click( function(ev){
            //prevent the default action of the event, this will stop the href in the anchor being followed
            //before the animation has started, u can also use return false;
            ev.preventDefault();
            //store a referene to the anchor tag
            var $self=$('img#myImage');
            var $link=$('a#myLink');
            //get the image and animate
            ($self).animate( {height:"10px"}, function(){
                //now get the anchor href and redirect the browser
                document.location = $link.attr('href');
            });
        });
    });
");

разметка:

print("<body>
<a id="myLink" href="http://www.google.co.uk">LINK</a>

<img id="myImage" src="http://www.derekallard.com/img/post_resources/jquery_ui_cap.png"/>
</body>");

это сказало, я, вероятно, ugly'd код. так мои извинения там.

1
ответ дан 3 December 2019 в 14:25
поделиться

Необходимо смочь использовать анимационную функцию, перечисленную здесь: (документ jQuery)

Это говорит, что обратный вызов не должен быть выполнен, пока анимация не завершена.

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

1
ответ дан 3 December 2019 в 14:25
поделиться

Попробуйте это:

 $("#thelink").click( function(){
  $(this).animate( { animation stuff }, "medium", "easeboth", function(){
    document.location = $(this).attr('href');  
  });
 });

Или когда ссылка не анимирована, но изображение (как Ваш вопрос указывает):

 $("#thelink").click( function(){
  $("#theImg").animate( { animation stuff }, "medium", "easeboth", function(){
    document.location = $("thelink").attr('href');  
  });
 });
0
ответ дан 3 December 2019 в 14:25
поделиться

Я знаю, что Вы, вероятно, не хотите слышать это, но что Вы делаете, большое нет - нет с точки зрения удобства использования.

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

0
ответ дан 3 December 2019 в 14:25
поделиться

Нет необходимости писать какие-либо функции, просто используйте встроенный метод события jQuery Event.preventdefault () (это, возможно, не было доступен в то время, когда этот вопрос был опубликован).

http://api.jquery.com/event.preventdefault/

1
ответ дан 3 December 2019 в 14:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: