-1

我在页面的 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() 函数,但它不起作用。

任何帮助表示赞赏。谢谢。

4

2 回答 2

1
$(document).ready(function () {
    $(".pjesmarrje").click(function () {
        $(this).find("div").css("background-image", "url(images/mumanin_s2.png)");
    });
});
于 2013-08-28T14:19:35.553 回答
1

您正在失去所谓的范围。如果您希望它在 _that 特定范围内工作,.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')

于 2013-08-28T14:20:09.063 回答