0

ユーザーが持っているさまざまなプレイリストをリストするポップオーバーがあります。クリックすると、ビデオに関連付けられた video_id を取得して、適切なプレイリストに追加しようとしています。これを実装する方法がわかりません。ユーザーがポップオーバーのリンクをクリックすると、video_id (div #add から) と選択されたプレイリスト (ユーザーが名前を生成する複数のプレイリストがありますが、選択されているのは 1 つだけです) が抽出されることになっています。何かアドバイス?

    <script type="text/javascript">
   $(document).ready(function() {
       $("#muncher").click(function(event){
       event.preventDefault();
            $.ajax({
                 type:"POST",
                 url:"/edit_favorites/",
                 data: {
                        'video_add': $('#add').val(), // from form
                        'playlist_selected': $('#').val() //from form
                        },
                 success: function(){

                        $('#muncher').html("Added");


                    }
            });
            return false;
       });

    });
</script>   


<div id = 'muncher'>
    <div id = 'add'>12345</div>
    <a href = "#" id="munch" rel="popover" data-html="true" data-placement="right"  data-content= "<a href= '#'>Favorites</a><br>

                <a href = '#' class = 'Funny'>Funny</a><br>

                <a href = '#' class = 'test'>test</a><br>

                <a href = '#' class = 'test1'>test1</a><br>                     

    " data-original-title="Add to your plate">
            Munch
    </a>    
</div>
4

3 に答える 3

0

jquery データ属性Aを使用して、タグ内に ID を格納してみてください。

または、代わりに、クリックされたタグの上のタグである前の兄弟を取得してから、 .text() を使用してその値を取得することができますDIVA

また、同じIDを持つ複数の要素を持つべきではありませんか? ID="ADD" のアイテムがたくさんあるようですね。

この場合、コードを変更する必要があるかもしれません

 $('#add').val(), 

 $('#add', $(this)).text(), 
于 2012-12-03T00:26:43.090 に答える
0

HTML ドキュメントで.html()は、任意の要素のコンテンツを取得するために使用できますhttp://api.jquery.com/html/ ので、これを試してみてください:

$('#add').html()

Daveoは正しいです。div の ID を一意にする必要があります。そのための 1 つのオプションは、add と共にプレイリスト ID を使用することです。お気に入りid="add_12345"

次に、.clickjQuery メソッドの代わりに、各 add_[id variable] div で onclick インラインを使用します。

<div id="add_12345" onclick="addClick(this);">

ID を取得するための JavaScript 関数:

function addClick(element) {
    id = element.id.slice(element.id.indexOf("_") + 1);
    alert(id);
    //your ajax post code here
}

達成しようとしていることを処理するにはいくつかの方法があります。このトピックの詳細については、この非常に優れた stackoverflow Q&A を確認してください: イベントを発生させた要素の ID を取得する

マークアップを変更する必要があります。12.2.2 ネストされたリンクは違法です

于 2012-12-03T00:28:40.937 に答える
0

あなたがやろうとしていることを正確に確認することについて少し混乱しています。各動画はプレイリストの子ですか? もしそうなら、onClick イベントのパラメータとして this.id を渡してみてください...

...click="toPlaylist(this.id)"

function toPlaylist(clicked) {
  var tempVideo = clicked;
  // Get a parent node ID like this...
  var tempList = $(clicked).parentNode.id;
  // Do something else...
  nextAction(tempVideo, tempList);
}

PS:このようなことをしなければならないかもしれません

  var tempVideo = '#'+clicked;    

...変数については、よくわかりません。

これがお役に立てば幸いです。

于 2012-12-03T05:16:14.323 に答える