我在 jQuery 中认为应该是一个简单的同级选择器时遇到了一些问题。
该问题不会产生错误消息,当然,它只是无法正确选择。在文档(就绪)函数()中,我有以下简单的代码来首先隐藏所有弹出窗口,然后等待一个人单击将显示同级弹出窗口的图像:
//hide all the charm pop ups
$(".charm_pop").hide();
$(".charm > img").click(function() {
$("this + .charm_pop").show();
})
我的 HTML 是由 Djangofor
循环生成的,因此这个简单的图像/弹出组合标记将有很多次迭代:
{% for ch in charms %}
<div class="charm">
<img src="{{ MEDIA_URL }}images/charms/{{ ch.image }}" alt="{{ ch.name }}" />
<div class="charm_pop">
<p id="charm_name">{{ ch.name }}</p>
<p id="charm_desc">{{ ch.description }}</p>
<p id="charm_price">${{ ch.price }}</p>
<form method="post" action="." class="cart">{% csrf_token %}
<p>**some inputs and what not</p>
</form>
</div>
</div>
{% endfor %}
正如你所看到的,我只是等待一个图像被点击,当它被点击时,我选择它的兄弟并显示相应的弹出窗口。然而,当我单击图像时,什么也没有发生。如果我$("this + .charm_pop").show();
用$(".charm_pop").show();
它替换确实显示了所有弹出窗口,所以点击功能正在工作,选择器只是不稳定。
我是否误解了this
在这种情况下的工作方式?