0
 <div class="share-tooltip-wrapper" data-id="<?php echo $post_ID; ?>">
    <div class="share-tooltip">
        <div class="arrow"></div>
        <ul class="share-list">
            <li>
                <a href="http://www.facebook.com/sharer/sharer.php?u=<?php echo urlencode(CURRENT_URL); ?>" target="_blank" class="share-facebook">
                    <span class="icon">Facebook</span>
                </a>
            </li>

你好 - 我正在制作一个 wordpress 网站,该网站的一部分有“分享按钮”,所有这些按钮都有唯一的 id,对应于可分享的帖子。问题出在我的 jquery 代码下面,我正在尝试编写代码,当您单击带有数据 ID 的共享按钮时,该代码基本上会说,然后更改具有相同数据 ID 的节点的 html。所以我可以在按钮上从共享状态转到共享状态。如果我没有一些唯一的 id,那么页面上的所有元素都会更改。

var current = jQuery(this).filter("id");
 jQuery("ul").find("[data-id='" + current + "']").on("click", function(event){
        console.log("clicked");

        // jQuery('span.share-text').html('<span class="share-text">Shared</span>');
    });

非常感谢任何和所有帮助。非常感谢你!

4

3 回答 3

1

jquery 方法 find 搜索元素的子元素,但您必须找到具有属性 data-id 的 ul 的父元素,因此请尝试使用最接近的方法在父元素中搜索树。

 jQuery("ul").closest("[data-id='" + current + "']").on("click", function(event){
    console.log("clicked");

    // jQuery('span.share-text').html('<span class="share-text">Shared</span>');
 });
于 2012-10-15T15:39:44.770 回答
0

根据您的 html,data-id 属性适用于 div。

而且您似乎在 ul 中找到了它。

尝试找到最接近的或 ul 的父级,然后尝试。

jQuery("ul").closest("[data-id='" + current + "']").on("click", function(event){
    console.log("clicked");

});
于 2012-10-15T15:40:41.170 回答
0

你可以简单地做到这一点

$(".share-facebook").click(function(){
  // $(this).parent("li").append($("<span>").html("shared").addClass("share-text"));
 // $(this).remove();
});​

编辑:http: //jsfiddle.net/NvWVh/24/

于 2012-10-15T15:56:45.383 回答