Как изменить значение элемента в событии, которое включено другим событием? - PullRequest
1 голос
/ 17 октября 2019

У меня есть эта проблема. Как это решить? когда я нажимаю на «тест». «б» будет показано. затем я нажимаю «б». это изменит значение «а». Мне нужно, чтобы значение, включаемое контейнером, а не другие значения в других элементах, совпадает с именем класса «контейнер». как? помоги мне.

<head>
<style>
    #test {
        width: 100px;
        height: 100px;
        background: blue;
        color: white;
    }
    .c {
        width: 100px;
        height: 100px;
        color: red;
        background: black;
    }

    .b {
        display: none;
        color: black;
        background: blueviolet;
        width: 100px;
        height: 100px;
    }
</style>
</head>
<div>
<div class="container"><div id="test"></div><div class="c">hello</div></div> 
<div class="b"></div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script>
$('#test').on('click',function name(params) {
    $('.b').show();
    var a = $(this).parent().find('.c').html();
    $('.b').click(function name(params) {
        // how to change value of a?
    });
});
</script>

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Вы ищете это?

var a = '';
$('#test').on('click',function name(params) {
    $('.b').show();
    if(!a) {
      a = $(this).parent().find('.c').html();
    }
    $(this).parent().find('.c').html(a);
});

$('.b').click(function name(params) {
   // how to change value of a?
   $('.container .c').html('changed value');
});
#test {
    width: 100px;
    height: 100px;
    background: blue;
    color: white;
}
.c {
    width: 100px;
    height: 100px;
    color: red;
    background: black;
}

.b {
    display: none;
    color: black;
    background: blueviolet;
    width: 100px;
    height: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div>
  <div class="container">
    <div id="test"></div>
    <div class="c">hello</div>
  </div> 
  <div class="b"></div>
</div>
0 голосов
/ 17 октября 2019

Не уверен, почему у вас есть щелчок в пределах клика, но вы хотите переместить b.click из a.click. Затем вам нужно объявить вашу переменную за пределами a.click, иначе b.click никогда не достигнет ее.

Итак, объявляйте тест без значения, затем изменяйте значение теста в каждом клике.

var a;
$('#test').on('click', function name(params) {
  $('.b').show();
  a = $(this).parent().find('.c').html('toBeginning');

});
$('.b').click(function name(params) {
  a = $('.container').find('.c').html('changed')
});
#test {
  width: 100px;
  height: 100px;
  background: blue;
  color: white;
}

.c {
  width: 100px;
  height: 100px;
  color: red;
  background: black;
}

.b {
  display: none;
  color: black;
  background: blueviolet;
  width: 100px;
  height: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<div>
  <div class="container">
    <div id="test">Test</div>
    <div class="c">hello</div>
  </div>
  <div class="b">B</div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...