2013-08-03 2 views
0

У меня был небольшой тест в интервью, создающем игру Rock, Paper, Scissors с использованием HTML5 DOM. Ниже параметров изображения, которые содержат 3 изображения, являются заполнителями, чтобы показать, что я (пользователь) и компьютер случайно выбрал.Скалы, бумага, ножницы в jQuery

У меня есть много вопросов по этому поводу: во-первых, может ли логика быть написана в jQuery? Обработчики событий могут делать только многое. Я раньше делал генератор случайных чисел в JavaScript, поэтому, наверное, использую смесь jQuery и JS ...

Вот пример того, что у меня есть ->http://jsfiddle.net/Tryah85/JxKjk/. У меня возникли проблемы с определением классов и идентификаторов в jQuery селектор $("#scissors.pick"); это выполнимо?

Прежде всего, ни один из JQuery не работает ... Вот фрагмент ... Я знаю, что код начинается так:

$(document).ready(function() { 
    $("id-or-class-oreven-html-selector").click(function() { 
    }); 
}); 

Мне нужно больше направление основных обработчиков событий JQuery.

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

Это упражнение заставило меня задуматься о моем знании jquery. Я думал, что у меня есть полное понимание этого, но теперь я не знаю, как это решить, может ли кто-нибудь любезно помочь?

Заранее благодарен!

+3

jQuery IS Javascript. Это просто библиотека, которая упрощает выполнение многих общих операций. – Barmar

+3

Кроме того, код в скрипке не имеет смысла. Вы слушаете какой-то элемент с помощью gesture классаName, чтобы предоставить событие click, но у вас его нет в html. Кроме того, использование селекторов типа '# id.className' является избыточным. Идентификатор должен быть уникальным, поэтому просто используйте '# id'. –

+3

'if ($ (" # rock.pick "))' также не имеет смысла. Возвращаемое значение '$ (" selector ")' всегда правдиво. Вы пытаетесь проверить, был ли элемент, на который был нажат, '# rock'? Путь к написанию: 'if ($ (this) .is (" # rock.pick "))' – Barmar

ответ

0

Я изменил совсем немного, может быть, это помогает

все ваши, если заявления могут резко сократить, хотя до сих пор не очень хорошо, как

$("#yourMove .move").html($("h2", $(this).clone())) 
        .addClass($(this).attr('data-pick')); 

Updated fiddle

0
$("#scissors.pick"); is this doable? 

Нет, его не выполнимо, если у вас есть уникальный идентификатор, просто использовать,

$("#scissors") 

Как Эван Trimboli предложенный в комментариях,

Вы слушаете некоторые элемент с жестом className, чтобы указать событие click, но у вас его нет в вашем html. Кроме того, использование типов селекторов id.className является избыточным. Идентификатор должен быть уникальным, поэтому просто используйте #id.

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

Щелчок по любой идентификатор должен быть использован в качестве,

$("#rock").click(function(){ 
    $("#yourMove").text("Your Move: Rock"); 
}); 

Ищете короткий код? Сделайте это в одной строке.

DEMO

$("#rock, #paper, #scissors").click(function(){ 
     $("#yourMove").text("Your Move: " + $(this).attr('id')); 
    }); 
Смежные вопросы