jquery 两个变量相互依赖的问题

jquery issue with two variables depending on each other

我正在尝试使用两个变量工作的 jquery 函数。 对此相当陌生,所以请耐心等待:)

变量一是从一开始就定义的,可以通过点击一个特定的按钮(.btn--effect2 或.btn--effect3)来改变。 单击具有 class .trigger 的按钮时,变量二将 html 插入 DOM。

下面是我想出的jquery

目前有效的是: 据 console.log 告诉我,当 .btn--effect2(或 3)被点击时,变量 1 得到更新。

什么不起作用 不幸的是,更新似乎对插入的html(变量二)中的变量一没有生效。

我发现了一个有趣的问答 Updating a global variable from a function。我尝试修改我的代码,因为我觉得范围有些不对劲。但我想,我不太明白该怎么做,因为它没有按预期工作。

如果我在这里遗漏了任何完全不同的解决方案,请向我指出。 非常感谢任何帮助。

非常感谢!

var one = "effect1";

$('.btn--effect2').click(function(){
 window.one = "effect2";
    console.log(one);
});

$('.btn--effect3').click(function(){
 window.one = "effect3";
    console.log(one);
});

var two = "<li><div class='post post--"+one+"'><p>Some text.</p></div></li>"

$('.trigger').click(function(){
  $('.list ul li:eq(0)').before(two);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn--effect1">effect1</button>
<button class="btn--effect2">effect2</button>
<button class="btn--effect3">effect3</button>
<button class="trigger">trigger</button>

<section class="list">
  <ul>
    <li><div class="post post--effect1"><p>Some text.</p></div></li>
  </ul>
  <ul>
    <li><div class="post post--effect1"><p>Some text.</p></div></li>
  </ul>
  <ul>
    <li><div class="post post--effect1"><p>Some text.</p></div></li>
  </ul>
</section>

原因是:在您的代码中,two 是在开始时定义的,并且永远不会更改!

没那么动态。

var one = "effect1";

$('.btn--effect2').click(function(){
 window.one = "effect2";
    console.log(one);
});

$('.btn--effect3').click(function(){
 window.one = "effect3";
    console.log(one);
});

$('.trigger').click(function(){
  var two = "<li><div class='post post--"+one+"'><p>Some text.</p></div></li>"
  $('.list ul li:eq(0)').before(two);
});

这应该有效。