Привязка переменных к каждому элементу
Здравствуйте.
Сверстать клавиатуру и выводить на определенную область вводимые буквы после клика. Мне к каждой букве на клавиатуре нужно дать переменную... Подскажите как это сделать? Хотя бы дайте правильно начать, чтобы не тратил в пустую времени |
Цитата:
Не проще делегировать обработчик события click ближайшему родителю каждой кнопки? |
<div id="result"></div>
<div id="keyboard">
<span>q</span>
<span>w</span>
<span>e</span>
<span>r</span>
<span>t</span>
<span>y</span>
</div>
<script>
document.querySelector('#keyboard').addEventListener('click',function(event){
if(this!==event.target)
document.querySelector('#result').innerHTML+=event.target.innerHTML;
});
</script>
|
Это Ангуляр?
|
Djambulat, прошу прощения за невнимательность, это javascript :)
|
Ничего)) А с ангуляром не сможешь?
|
Djambulat, к сожалению нет.
|
Мой "Hello World!"
<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
</head>
<body>
<main ng-controller="AppController">
<div >{{ inputstring }}</div>
<div>
<span ng-click="getLetter('q')">q</span>
<span ng-click="getLetter('w')">w</span>
<span ng-click="getLetter('e')">e</span>
<span ng-click="getLetter('r')">r</span>
<span ng-click="getLetter('t')">t</span>
<span ng-click="getLetter('y')">y</span>
</div>
</main>
<script>
(function() {
'use strict';
angular
.module('app', [])
.controller('AppController', ['$scope', function($scope) {
$scope.getLetter = function(letter) {
$scope.inputstring = ($scope.inputstring?$scope.inputstring:"") + letter ;
};
}]);
})();
</script>
</body>
</html>
|
"Hello World!" дубль два :)
<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
</head>
<body>
<main ng-controller="AppController">
<div >{{ inputstring }}</div>
<div>
<span ng-repeat='b in letter' ng-click="getLetter(b)"> {{b}}</span>
</div>
</main>
<script>
(function() {
'use strict';
angular
.module('app', [])
.controller('AppController', ['$scope', function($scope) {
$scope.letter = 'qwerty';
$scope.inputstring = "";
$scope.getLetter = function(letter) {
$scope.inputstring += letter ;
};
}]);
})();
</script>
</body>
</html>
|
Спасибо. А как прописать кнопку backspace, чтобы удаляла последнюю букву?))
|
Djambulat,
<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<style type="text/css">
div span{
cursor: pointer;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
</head>
<body>
<main ng-controller="AppController">
<div >{{ inputstring }}</div>
<div>
<span ng-repeat='b in letter' ng-click="getLetter(b)"> {{b}}</span>
<span ng-click="inputstring = inputstring.slice(0,-1)"> ↵</span>
</div>
</main>
<script>
(function() {
'use strict';
angular
.module('app', [])
.controller('AppController', ['$scope', function($scope) {
$scope.letter = 'qwerty';
$scope.inputstring = "";
$scope.getLetter = function(letter) {
$scope.inputstring += letter ;
};
}]);
})();
</script>
</body>
</html>
|
Переключение раскладки и shift
<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<style type="text/css">
div {height:20px;}
div span{
cursor: pointer;
border:1px solid black;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
</head>
<body>
<main ng-controller="AppController">
<div >{{ inputstring }}</div>
<div>
<span ng-click="chngShift()"> {{view}}</span>
<span ng-click="chngLetter()"><img src="https://javascript.ru/forum/images/smilies/smile.gif"/></span>
<span ng-repeat='b in letter' ng-click="getLetter(b)"> {{b}}</span>
<span ng-click="inputstring = inputstring.slice(0,-1)">⇐</span>
</div>
</main>
<script>
(function() {
'use strict';
angular
.module('app', [])
.controller('AppController', ['$scope', function($scope) {
var alfa ={eng:{alt:'rus',alf:'qwerty'}, rus:{alt:'eng',alf:'йцукен'}};
var shift ={up:{alt:'down',view:'String.fromCharCode(0x21D1)'},down:{alt:'up',view:'String.fromCharCode(0x21D3)'}};
$scope.view = eval(shift.up.view);
$scope.shift = shift.up.alt;
$scope.letter = alfa.eng.alf;
$scope.language =alfa.eng.alt;
$scope.inputstring = "";
$scope.getLetter = function(letter) {
$scope.inputstring += letter ;
};
$scope.chngLetter = function() {
$scope.letter = alfa[$scope.language].alf ;
$scope.language =alfa[$scope.language].alt ;
if(shift[$scope.shift].alt == 'down')
{ $scope.letter = $scope.letter.toUpperCase(); }
else
{ $scope.letter = $scope.letter.toLowerCase(); };
};
$scope.chngShift = function() {
if(shift[$scope.shift].alt == 'up')
{ $scope.letter = $scope.letter.toUpperCase(); }
else
{ $scope.letter = $scope.letter.toLowerCase(); };
$scope.view = eval(shift[$scope.shift].view);
$scope.shift = shift[$scope.shift].alt;
};
}]);
})();
</script>
</body>
</html>
|
Dilettante_Pro,
:dance: :) |
рони,
shift добавлен:victory: немного костыльно:-E |
Dilettante_Pro,
:) :victory: |
почему у меня, после того как я стер одну букву, то снова клик не работает? Нужно снова обновить страницу и написать...
|
С шифтом я разберусь после того как с backspace разберусь... Shift очень интересно))))
|
Цитата:
|
Google.
А все я так сделал... <span ng-click="remo()">⇐</span>
$scope.remo = function() {
$scope.inputstring = $scope.inputstring.slice(0, -1);
};
|
Теперь нужно к Shift приступать))))))
|
Если у меня целая клавиатура сверстана уже на англ и русск, то как тогда быть?
|
Djambulat,
Не нужен переключатель раскладок. А на экране место остается? |
Место для двух клавиатур или в каком смысле?
|
Djambulat,
Место для ввода текста после размещения на нем двуязычной клавиатуры. |
![]() |
Внизу для ввода текста. Хочу после клика на иконку в форме земли, чтобы менялся язык))
|
Djambulat,
А вы писали Цитата:
И еще цифры включать. Ну, шпаргалка у вас есть - дальше попробуйте сами. насчет земного шара - посмотрите еще раз пример пост 12 |
У тебя из кнопок (qwerty) и (йцукен) А как это сделать с полной клавиатурой и css стилями? Давайте так, у меня два файла ruKey.html и engKey.html как их подставить туда?
|
| Часовой пояс GMT +3, время: 21:01. |