чекбокс onchange event android cordova visual studio не работает - PullRequest
0 голосов
/ 09 мая 2018

Я не понимаю. Я создаю приложение с Visual Studio 2017 & Cordova. По какой-то причине события onclick и onchange не запускаются.

Это мой код. Я делаю что-то неправильно? Другие события onclick работают нормально, изменить его на событие onchange не работает. Я перепробовал все, что мог придумать. Единственное, о чем я могу думать, это то, что это не работает, потому что я заполняю div, используя javascript, а затем пытаюсь выполнить другое действие в javascript. Может ли это вызвать это? Как я могу решить это?

$(document).ready(function() {
var id = localStorage.getItem("id");


$.getJSON("https://url.nl/interesses_json.php?id="+id, function(result) {
$.each(result, function(i, field) {

if(field.acceptsallworkgroups == '1'){ 

var interesses = '<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" class="alles"   checked><label class="onoffswitch-label" for="myonoffswitch"><span class="onoffswitch-inner"></span><span class="onoffswitch-switch"></span></label></div>'
      var interlist = '<div style="padding-left: 30px;padding-top: 20px; height: 200px;">Je staat momenteel open voor voorstellen uit alle categorieën</div>'
     }else{
      var interesses = '<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" class="alles"  ><label class="onoffswitch-label" for="myonoffswitch"><span class="onoffswitch-inner"></span><span class="onoffswitch-switch"></span></label></div>'
var interlist = '<div style="padding-left: 30px;padding-right: 30px; padding-bottom: 20px;"><div style="padding-left: 30px; border-radius: 8px;background: linear-gradient(#F5C436, #F3B23F); height: 40px; color: white; padding-top: 10px;"><div style="color: white; float:left;">'+field.name+'</div><div style="color: white; float:right; padding-right: 20px;"><a href="javascript:void(0);"   id="detail'+field.id+'"> v </a></div></div><div id="showdetail'+field.id+'" style="display: none;background-color:#f7f7f7; padding-top: 20px; padding-left:30px;">'+field.comments+'</div></div>'
     }
document.getElementById('int').innerHTML = "<div style='padding-left: 30px;'><div style='float: left; padding-top: 10px; '> Ik sta open voor alles: </div><div  style='float: right; padding-right: 40px;'> " +interesses+"</div></div>"

document.getElementById('intlist').innerHTML += interlist




}); 
$( ".alles" ).click(function() {
console.log("hoi")
});
});

<style>
.onoffswitch {
    position: relative; width: 96px;
    -webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;
}
.onoffswitch-checkbox {
    display: none;
}
.onoffswitch-label {
    display: block; overflow: hidden; cursor: pointer;
    border: 1px solid #FFFFFF; border-radius: 20px;
}
.onoffswitch-inner {
    display: block; width: 200%; margin-left: -100%;
    transition: margin 0.3s ease-in 0s;
}
.onoffswitch-inner:before, .onoffswitch-inner:after {
    display: block; float: left; width: 50%; height: 35px; padding: 0; line-height: 35px;
    font-size: 14px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold;
    box-sizing: border-box;
}
.onoffswitch-inner:before {
    content: "Ja";
    padding-left: 15px;
    background-color: #E38700; color: #FFFFFF;
}
.onoffswitch-inner:after {
    content: "Nee";
    padding-right: 15px;
    background-color: #EEEEEE; color: #999999;
    text-align: right;
}
.onoffswitch-switch {
    display: block; width: 18px; margin: 8.5px;
    background: #FFFFFF;
    position: absolute; top: 0; bottom: 0;
    right: 57px;
    border: 2px solid #FFFFFF; border-radius: 22px;
    transition: all 0.3s ease-in 0s; 
}
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
    margin-left: 0;
}
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
right: 0px; }

</style>
<div class='row'>
<div id='int' style='padding-top: 20px; padding-bottom: 0px;'>

</div>
</div>

1 Ответ

0 голосов
/ 09 мая 2018

Всегда помещайте событие в документ, указывая нужный элемент:

$(document).on('click',  ".alles", function() {
    console.log("hoi");
});

Таким образом вы можете запретить событию работать в динамических элементах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...