2

closest()作成および動作できませんfind():

<script type="text/javascript">
    $('a.favorites_save') .live('click', function(e) {
        thisObj = this;
        e.preventDefault();
        var link = $(this).attr('href')
        alert(link)
        $.get(link, function() {
            $(thisObj).find('a.favorites_delete:first').show();
            $(thisObj).hide();
        });
        return false;
    });

    $('a.favorites_delete') .live('click', function(e) {
        thisObj = this;
        e.preventDefault();
        var link = $(this).attr('href')
        $.get(link, function(data) { 
            $(thisObj).closest('a.favorites_save:first').show();
            $(thisObj).hide();
        });
        return false;
    });
</script>

HTML

<ul class="action-buttons">
    <li><a href="#link" class="portfolio">Add to portfolio</a></li>
    <span class="favorites_status"></span>
    <li><a class="favourites favorites_save" style="display:none;" href="/_web_includes/faves/reference/569">Add to Favourites</a></li>
    <li class="current"><a class="favourites favorites_delete" href="/_web_includes/faves/reference/569/delete">Remove Favourite</a></li>

[お気に入りの削除] を押すと、リンクは非表示になりますが、方法show()と同じように機能しませんfind()。HTML ソースで繰り返される HTML コードだけでは、すべてを実現することはできません。

4

3 に答える 3

2

$(this) オブジェクト内から .​​find() および .closest() を参照しています。.closest() はこのオブジェクトの親のみを検索し、.find() はこのオブジェクトの子を検索します。グローバルな選択が必要な場合は、これを行うだけです...

$("a.favorites_save:first")

これは削除用です...

$("a.favorites_delete:first")
于 2012-02-01T17:09:36.303 に答える
2

リンクは 内にあるため<li>、「.find()」と「.closest()」の両方がそれらを見ることはありません。あの二人は木の同じ枝を上下にしか動かない...

それを機能させるには、次のようなことをする必要があります.closest('action-buttons').find('favorites_delete')...

于 2012-02-01T17:05:26.310 に答える
0

解決策はそのようなものです

$(thisObj).closest("ul").find('favorites_delete');

木の高いところに上がればいいだけ

于 2012-02-02T18:18:34.010 に答える