我的页面的3个部分中包含此HTML代码:
<div class="pjesmarrje">
<a href="#" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u='+encodeURIComponent(location.href),'facebook-share-dialog','width=626,height=436'); return false;">
<div></div>
<span>Kliko këtu për pjesëmarrje</span>
</a>
</div>
并且,我试图在点击时更改div内部的背景图像。我得到了这个jQuery代码:
$(document).ready(function() {
$(".pjesmarrje").click(function() {
$(".pjesmarrje div").css("background-image", "url(images/mumanin_s2.png)");
});
});
当我点击其中一个元素时,所有其他元素也会更改其背景图像。我不希望发生这种情况,我希望仅在单击该特定元素时才更改bg图像。我试图使用.each()函数,但它没有用。
感谢任何帮助。感谢。
答案 0 :(得分:1)
$(document).ready(function () {
$(".pjesmarrje").click(function () {
$(this).find("div").css("background-image", "url(images/mumanin_s2.png)");
});
});
答案 1 :(得分:1)
您正在失去所谓的范围。如果您希望它在特定的.pjesmarrje
_内工作,您需要以下内容:
$(document).ready(function() {
$(".pjesmarrje").click(function() {
// `this` is a reference to the `.pjesmarrje` that triggered the click
// event. and, within that `<div>` we want to find the `<div>` whose
// background we want to change.
$("div", this).css("background-image", "url(images/mumanin_s2.png)");
});
});
注意第二个参数:$(selector, scope)
。这意味着我们只关心点击<div>
中的.pjesmarrje
(而不是页面上的所有内容)。
值得深思:$('div', this)
与$(this).find('div')
同义。