在此编码练习中,tt花了我一些时间来弄清楚如何引用隐藏在此处的类,现在它可以正常工作了,打破它是可耻的,但是,我希望将其重构东西,所以对需要隐藏的类的引用更干净。
如您所见,在对每种自适应重用的解决方案进行硬编码时,将nextElementSibling加倍以遍历树的成本。我的希望是简单地更改所查询的类。为此,起初看起来像使用this.querySelector('* +')可能是答案,但是经过多次尝试(也许不是正确的b / c,除非您另外告诉我,它仍然可能起作用),但失败了。
以下方法有效:
public void SnapToGrid()
{
Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector2 masterObjectPos = new Vector2(dataManagement.masterObject.transform.position.x, dataManagement.masterObject.transform.position.y);
Vector2 mouseToMasterObjectPos = masterObjectPos - mousePosition;
float mouseMasterObjectDistance = Vector2.Distance(masterObjectPos, mousePosition);
Vector2 camPos = new Vector2(Camera.main.transform.position.x, Camera.main.transform.position.y);
mousePosition -= masterObjectPos;
Debug.LogWarning("MOUSEPtomasterpos: " + mouseToMasterObjectPos);
Debug.LogWarning("mouseobject distance " + mouseMasterObjectDistance);
int xCount = Mathf.RoundToInt(mousePosition.x / gridSizeX);
int yCount = Mathf.RoundToInt(mousePosition.y / gridSizeY);
Vector2 result = new Vector2((float)xCount * gridSizeX, (float)yCount * gridSizeY);
result += masterObjectPos;
result += mouseToMasterObjectPos;
template.transform.position = result;
}
那么,如何根据给出的HTML轮廓以更简单的方式引用.acc-body类?
而且,由于此处实施的事件处理方法绝对是非标准的,因此可能不建议这样做,是否足以避免在生产中使用此方法?
let el = this.parentNode.firstChild
el = el.nextElementSibling
el = el.nextElementSibling
作为IIFE实施;建议将其放在自己的.js文件中,并从HTML文档中的脚本标签引用。
<div class="acc">
<div class="acc-item">
<!-- <div class="acc-title"> -->
<h1 class="acc-title" id="btn_hide">Click to hide the Body</h1>
<!-- </div> -->
<div class="acc-body hideable">
<p id="head1">Why innerHTML is so great...</p>
</div>
</div>
<div class="acc-item">
<h1 class="acc-title" id="other_btn_hide_xxxx">Click to hide the Body</h1>
<div class="acc-body hideable">
<p id="head2">Why innerHTML is so great...</p>
</div>
</div>
</div>