• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JavaScript / jQuery - Math.floor(Math.random()) i sortable()

Object Storage Arubacloud
0 głosów
252 wizyt
pytanie zadane 9 kwietnia 2017 w C i C++ przez kralcz88 Obywatel (1,810 p.)

Witam!

1. Mam pytanie dot. metody Math.floor oraz Math.random.

    function randomString(){
        var chars = '0123456789abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ';
        var str = '';
        var i = 0;
        for(i=0; i<10; i++){
            str+= chars[Math.floor(Math.random()*chars.length)];
        };
        return str;

Dlaczego musiałem skorzystać z nawiasów kwadratowych? str+= chars[Math.floor(Math.random()*chars.length)];

Gdy początkowo napisałem kod używając nawiasów okrągłych pojawił się błąd.

 

2. Jak w jQuery UI ustawić, żeby w momencie przeciąganie kart pojawił się placeholder taki jak jest wystylizowany w CSS?

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Tablica kanban</title>
    <link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>

	<div id="board" class="board">
	  <h1>Tablica kanban</h1>
	  <button class="create-column">Dodaj kolumnę</button>
	  <div class="column-container"></div>
	</div>

    <script src="https://code.jquery.com/jquery-3.0.0.min.js" integrity="sha256-JmvOoLtYsmqlsWxa7mDSLMwa6dZ9rrIdtrrVYRnDRH0=" crossorigin="anonymous"></script>
    <script   src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"   integrity="sha256-xNjb53/rY+WmG+4L6tTl9m6PpqknWZvRt0rO1SRnJzw="   crossorigin="anonymous"></script>
    <script type="text/javascript" src="js/scripts.js"></script>
</body>
</html>
body{
	background-color: #ccc;
}

.card-placeholder{
	height: 1.5em; 
	line-height: 1.2em;
	background-color: yellow;
}
$(document).ready(function(){
	function randomString(){
		var chars = '0123456789abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ';
		var str = '';
		var i = 0;
		for(i=0; i<10; i++){
			str+= chars[Math.floor(Math.random()*chars.length)];
		};
		return str;
	};


	function Column(name){
		var self = this;
		this.id = randomString();
		this.name = name;
		this.$element = createColumn();

		function createColumn(){
			var $column = $('<div>').addClass('column');
			var $columnTitle = $('<h2>').addClass('column-title').text(self.name);
			var $columnCardList = $('<ul>').addClass('column-card-list');
			var $columnDelete = $('<button>').addClass('btn-delete').text('x');
			var $columnAddCard = $('<button>').addClass('add-card').text('Dodaj kartę');

			$columnDelete.click(function(){
				self.removeColumn();
			});

			$columnAddCard.click(function(){
				self.addCard(new Card(prompt('Wpisz nazwę karty')));
			});

			$column.append($columnTitle);
			$column.append($columnDelete);
			$column.append($columnAddCard);
			$column.append($columnCardList);

			return $column;
		
		};
	};

	Column.prototype.addCard = function(card) {
		this.$element.children('ul').append(card.$element);
	};

	Column.prototype.removeColumn = function(){
		this.$element.remove();
	};

	function Card(description){
		var self = this;
		this.id = randomString();
		this.description = description;
		this.$element = createCard();

		function createCard(){
			var $card = $('<li>').addClass('card');
			var $cardDescription = $('<p>').addClass('card-description').text(self.description);
			var $cardDelete = $('<button>').addClass('btn-delete').text('x');

			$cardDelete.click(function(){
				self.removeCard();
			});

			$card.append($cardDelete);
			$card.append($cardDescription);

			return $card;
		};
	};

	Card.prototype.removeCard = function(){
		this.$element.remove();
	};

	var board = {
		name: 'Tablica Kanban',
		addColumn: function(column){
			this.$element.append(column.$element);
			initSortable();
		},
		$element: $('#board .column-container')
	};

	function initSortable(){
		$('.column-card-list').sortable({
			connectWith: '.column-card-list',
			placeholder: '.card-placeholder',
			forcePlaceholderSize: true,
		}).disableSelection();
	};

	$('.create-column').click(function(){
		var name = prompt('Wpisz nazwę kolumny');
		var column = new Column(name);
		board.addColumn(column);
	});

});


 

komentarz 9 kwietnia 2017 przez Shaoi Mądrala (7,020 p.)
Zła kategoria.
komentarz 9 kwietnia 2017 przez xmentor Nałogowiec (49,520 p.)

Tak z ciekawości, nie lepiej Ci wygenerować id np. w taki sposób:

`column_${new Date().getTime()}`

?

komentarz 10 kwietnia 2017 przez kralcz88 Obywatel (1,810 p.)
W sumie to też spoko sprawa. Nie znałem wcześniej tej metody. Warto zapamiętać:)

1 odpowiedź

0 głosów
odpowiedź 9 kwietnia 2017 przez gromula Stary wyjadacz (10,070 p.)
wybrane 10 kwietnia 2017 przez kralcz88
 
Najlepsza
Witam.

1. Ze względu na to że wskazuje na n'ty element stringa chars

Czyli pobierasz w for 10 razy n'ty element z chars i przypisujesz go do zmiennej str, co w wyniku daje Ci random stringa z podanego ciągu w chars.

Podobne pytania

–1 głos
1 odpowiedź 844 wizyt
0 głosów
1 odpowiedź 106 wizyt
pytanie zadane 20 listopada 2017 w JavaScript przez Warcabiak Użytkownik (500 p.)
0 głosów
1 odpowiedź 145 wizyt
pytanie zadane 15 marca 2021 w HTML i CSS przez zerakot Obywatel (1,870 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...