Jquery: как произвести 1 из 3 фраз, когда происходит событие - PullRequest
0 голосов
/ 26 января 2011

У меня есть функция закладок на моем сайте, когда человек нажимает на абзац, поле, которое уже находится над этим абзацем с надписью «Закладка эта», вставляет «сладкий человек» вместо «Закладка эта».так что «Закладка это» исчезает, и «сладкий человек» занимает свое место, как бы я сделал это так, когда я нажимаю на абзаце, он помещает туда 1 из 3 случайных фраз, скажем, 3 фразы «успех», «сладкий»мужчина "и" потрясающе ".вот немного моего кода, чтобы показать вам, где будет размещена случайная фраза.

 $('p').click(function (e) {
    var offset = $(this).offset();
     var top = offset.top

     if ($('#placeBookmark').hasClass('placing')) { 
      $('#placeBookmark').trigger('click')

    $('#bookmark').css({left: offset.left - 30, top: top}).show();
     $('#bookmarkThis').html('***SWEET MAN.***').delay(1000).fadeOut(400, function(){
        $(this).html('BOOKMARK THIS')
         })

    }
});

Посмотрите, где в моем коде написано «СЛАДКИЙ ЧЕЛОВЕК», вот где должна быть 1 из 3 случайных фразразмещается после того, как пользователь щелкает абзац.

СПАСИБО

1 Ответ

2 голосов
/ 26 января 2011
$('p').click(function (e) {
  var offset = $(this).offset();
  var top = offset.top

  // list of phrases
  var phrases = ["success", "sweet man", "awesome"];

  if ($('#placeBookmark').hasClass('placing')) { 
    $('#placeBookmark').trigger('click')

    $('#bookmark').css({left: offset.left - 30, top: top}).show();

    // Selects a random phrase from the list.
    // Note that it doesn't require the length to be exactly three,
    // you can add and remove phrases above without changing this line.
    var selectedPhrase = phrases[Math.floor(Math.random() * phrases.length)]; 

    $('#bookmarkThis').html(selectedPhrase).delay(1000).fadeOut(400, function(){
      $(this).html('BOOKMARK THIS')
    })
  }
});

Редактировать

В качестве отдельной функции:

var getRandomPhrase = function() {
  var phrases = ["success", "sweet man", "awesome"];
  return phrases[Math.floor(Math.random() * phrases.length)];
};

Или с фразами есть аргументы:

var getRandomPhrase = function(phrases) {
  return phrases[Math.floor(Math.random() * phrases.length)];
};

Используйте это так:

...
$('#bookmarkThis').html(getRandomPhrase()).delay(1000).fadeOut(400, function(){
...

или, когда в качестве аргументов используются фразы:

...
$('#bookmarkThis').html(getRandomPhrase(["success", "sweet man", "awesome"])).delay(1000).fadeOut(400, function(){
...
...