#javascript #html #onclick #listener
#javascript #HTML #onclick #прослушиватель
Вопрос:
Я довольно новичок в JavaScript, но имею довольно большой опыт работы с Java, поэтому я начал пытаться работать над плагином script / bot для веб-сайта. Однако, похоже, что прослушиватель, который я создал для StartButton, не запускается с помощью правильного onClick.
Скрипт запускается внутри TamperMonkey (вот почему вставка HTML находится в одной строке и почему === вместо ===).
Я проверил все идентификаторы и обычную логику, стоящую за этим, и прослушиватель должен работать, однако он не дает никаких указаний как таковых. У меня это в основном настроено так, чтобы другие функции были отключены, поэтому я бы знал, что кнопка запуска сработала, однако ничего не происходит. Когда я нажимаю кнопку stopButton, она выдает обычное предупреждение «Уже остановлено …». Код для всех соответствующих областей можно найти здесь:http://pastebin.com/0qJ1Hvz0
Я искал вокруг и, похоже, не могу найти связанную проблему. Тем временем я продолжу поиск. Большое вам спасибо!
Ответ №1:
попробуйте это…
document.getElementById('startButton').addEventListener('click', function() {
alert('do something');
});
Ответ №2:
После детализации ваших кодов:
progress
, поэтому я вставил один (родительский)
stopAfterXGamesCheckbox
на самом деле ваш html-идентификатор был stopAFterXGamesCheckbox
stopAfterXGamesCheckbox
, но не было div с идентификатором для that..so плавая в океане, я применил его, чтобы посмотреть, что также произойдет, старайтесь не помещать label for=""
в качестве HTML-тега.
label for = stopAfterReachingXCheckbox
; Это вызвало ошибку. Я считаю, что это должно быть label id = stopAfterReachingXCheckbox
наконец, фрагмент ниже
// INSERTING UI INTO WEBPAGE
var UI_html = '<style scoped> @import url(https://fonts.googleapis.com/css?family=Ubuntu:300); table { font-family: "Ubuntu", sans-serif; background-color: #404040; color: #4A77A4; } #header { background-color: #262626; color: #ff0066; } label { font-weight: normal; } .odds { font-weight: normal; color: #00ffcc; } input[type=text] { border-radius: 5px; border: 1px solid rgba(0, 0, 0, .25); color: #808080; background-color: #262626; } input[type=text]:focus { background-color: #4A77A4; color: #ffcc00; } input[type=button] { background-color: #262626; border-color: #1a1a1a; } #startButton { color: #2ecc71; } #stopButton { color: #e74c3c; }</style><hr /><table border="1"><tbody><tr id="header"><td><input checked="checked" name="system" type="radio" value="nightengale" /> <label for="nightengaleRadioBtn">=]</label></td></tr><tr><td><table><tbody><tr><td><label for="defaultBetInput">Default Bet: </label> <input type="text" id="defaultBetInput"/></td></tr><tr><td><input type="checkbox" id="stopAfterXGamesCheckbox"/> <label >Stop after <input type="text" id="stopAfterXGamesInput"/> games</label></td></tr><tr><td><input type="checkbox" /> <label id="stopAfterReachingXCheckbox">Stop after reaching <input type="text" id="stopAfterReachingXInput"/> </label></td></tr><tr><td><label for="currentBalance">Current Balance: </label><span id="currentBalanceText"> -- </span></td></tr></tbody></table></td></tr><tr><td><input style="width: 50%;" type="button" value="Start" id="startButton"/><input style="width: 50%;" type="button" value="Stop" id="stopButton"/></td></tr></tbody></table><hr />';
var UI = document.createElement('div');
UI.innerHTML = UI_html;
var insertBefore = document.getElementsByClassName("progress")[0];
insertBefore.parentNode.insertBefore(UI, insertBefore);
// FINISHED INSERTING UI INTO WEBPAGE
// DEFINING VARIABLES
var statusBanner = document.getElementById("banner");
var redBetButton = document.getElementsByClassName("betButton")[0];
var greenBetButton = document.getElementsByClassName("betButton")[1];
var blackBetButton = document.getElementsByClassName("betButton")[2];
var balanceSpan = document.getElementById("balance_r");
var balanceSpanUI = document.getElementById("currentBalanceText");
var betAmountInput = document.getElementById("betAmount");
var defaultBetInput = document.getElementById("defaultBetInput");
var stopAfterXGamesCheckbox = document.getElementById("stopAfterXGamesCheckbox");
console.log(stopAfterXGamesCheckbox,defaultBetInput);
var stopAfterXCheckbox = document.getElementById("stopAfterReachingXCheckbox");
var stopAfterXGamesInput = document.getElementById("stopAfterXGamesInput");
var stopAfterXInput = document.getElementById("stopAfterReachingXInput");
var running = false;
// FINISHED DEFINING VARIABLES
// DEFINING LISTENERS (FOR UI)
startButton.onclick = function()
{
var passedTest = true;
if (defaultBetInput.value === '' || defaultBetInput.value <= 0)
passedTest = false;
if (stopAfterXGamesCheckbox.checked amp;amp; (stopAfterXGamesInput.value === '' || stopAfterXGamesInput.value <= 0))
passedTest = false;
if (stopAfterXCheckbox.checked amp;amp; (stopAfterXInput.value === '' || stopAfterXInput.value <= 0))
passedTest = false;
if (!running amp;amp; passedTest)
{
running = true;
defaultBetInput.disabled = true;
stopAfterXGamesCheckbox.disabled = true;
stopAfterXGamesInput.disabled = true;
stopAfterXCheckbox.disabled = true;
stopAfterXInput.disabled = true;
// balanceSpanUI.innerHTML = getBalance();
} else if (!passedTest) {
alert("Either uncheck the boxes, or fill in the associated fields.");
} else {
alert("Already running...");
}
};
stopButton.onclick = function()
{
if (running)
{
running = false;
defaultBetInput.disabled = false;
stopAfterXGamesCheckbox.disabled = false;
stopAfterXGamesInput.disabled = false;
stopAfterXCheckbox.disabled = false;
stopAfterXInput.disabled = false;
balanceSpanUI.innerHTML = "--";
} else {
alert("Already stopped...");
}
};
defaultBetInput.oninput = function()
{
};
// FINISHED DEFINING LISTENERS (FOR UI)
// DEFINING FUNCTIONS
function getBalance()
{
return balanceSpan.innerHTML;
}
<div class="progress">
</div>