Использование Set
- ваш самый быстрый вариант. Вот общая функция для получения уникального случайного, использующего генератор обратного вызова. Теперь он быстрый и многоразовый.
// Get a unique 'anything'
let unique = new Set()
function getUnique(generator) {
let number = generator()
while (!unique.add(number)) {
number = generator()
}
return number;
}
// The generator. Return anything, not just numbers.
const between_1_100 = () => 1 + Math.floor(Math.random() * 100)
// Test it
for (var i = 0; i < 8; i++) {
const aNumber = getUnique(between_1_100)
}
// Dump the 'stored numbers'
console.log(Array.from(unique))
Можно сделать это в одной строке с var originalElement = e.srcElement || e.originalTarget;
, но это не довольно подобно JQuery ;-)
[Редактирование: Но согласно http://docs.jquery.com/Events/jQuery.Event#event.target event.target
мог бы сделать...]
Я полагаю, что e.target - то, чего Вы требуете
$('body').bind('click', function(e){
e.target // the original target
e.target.id // the id of the original target
});
, Если Вы переходите в jQuery в веб-сайте Действия и загружаете исходный код, смотрите на телефон
, который имеет дело с распространением события с пузырем и обработчиками получений