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コードの下にあります.data-idで共有ボタンをクリックしたときに本質的に言うコードを書き、同じdata-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 に答える