いくつかの要素の onClick と呼ばれるメソッドがあります。その関数には、ボタンのクリックを検出して何らかのアクションを実行するイベント ハンドラー (JQuery $().click() ) があります。
イベント ハンドラーは、関数内のステートメントの最後のブロックである限り正常に動作し、その後に特定のコード ブロックがある場合は完全にスキップされることに気付きました。なぜそれが起こっているのですか?
編集コードの追加
function launchPopUp(ID) {
if ($('#popUp').is(':hidden')) {
var serial = ID.id; // ID of the element or area clicked.
var headData = 'SVG PopUp';
var entData = 'Enter the data you want to store:';
var ok = "No";
var input = "";
var header = addHeader(headData);
var enterable = addEnterable(entData);
var buttons = addButtons();
$('#popUp').append(header);
$('#popUp').append(enterable);
$('#popUp').append(buttons);
$('#popUp').show();
$('#btnSubmit').click(function() {
input = document.getElementById('txtData').value;
if (input != "") {
ok = "yes";
$(ID).css('fill', 'green'); // Change colour to green only if some valid data is entered.
closePopUp();
}
});
var collData = { "ID": serial, "header": headData, "OK": ok, "input": input };
collection.push(collData);
}
}
コントロールは、.click() の後にコード ブロックに直接ジャンプしています。