0

私は繰り返すこのビットのコードを持っています。

<div class='commentfloatleft'>
                <button type='button' class='button2' onclick='upvote($id8)'>
                    <img src='images/likebutton.png'    class='upvoteimage' width='12' height='12' alt='PearlSquirrel'/>
                </button>
                <button type='button' class='button2' onclick='downvote($id8)'>
                    <img src='images/unlikebutton.png' width='12' height='12' alt='PearlSquirrel'/>
                </button>
            </div>

賛成票の onclick コードをクリックすると、次のようになります。

function upvote(box){
$(this).siblings('.upvoteimage').load('upvote.php?box=' + box);
}

私はこれを機能させるためにあらゆることを試みました。get機能は動作していますが、「.upvoteimage」に変化が見られません。この問題を解決する方法を知っている人はいますか。助けていただければ幸いです。ありがとう。

4

6 に答える 6

2

あなたのコードは兄弟を示していますが、.upvoteimageは兄弟ではなく子です。代わりにfind/childrenを使用してみてください。

そして、$(this)はおそらく関数に存在しません。代わりに、onclickイベントをスクリプトブロックに移動する必要があるかもしれません。jQueryには、インラインコードでは機能しない優れた機能がいくつかあります。

于 2012-09-03T05:43:53.497 に答える
2

この方法を試してください: クラス「upvote」を「ボタン」要素に設定します。

<div class='commentfloatleft'>
                <button type='button' class='button2 upvote' id='$id8'>
                    <img src='images/likebutton.png'    class='upvoteimage' width='12' height='12' alt='PearlSquirrel'/>
                </button>
                <button type='button' class='button2' onclick='downvote()'>
                    <img src='images/unlikebutton.png' width='12' height='12' alt='PearlSquirrel'/>
                </button>
            </div>​

そして、次の JS コードを使用します。

$(".upvote").on("click",function(){
    var box=$(this).attr("id");
    $(this).find('.upvoteimage').attr("src",'upvote.php?box=' + box);
    return false;
}​);​
于 2012-09-03T05:59:36.470 に答える
2

これを試して

HTML

  <div class='commentfloatleft'>
                    <button type='button' class='button2' onclick='upvote(this,\x27$id8\x27)'>
                        <img src='images/likebutton.png'    class='upvoteimage' width='12' height='12' alt='PearlSquirrel'/>
                    </button>
                    <button type='button' class='button2' onclick='downvote($id8)'>
                        <img src='images/unlikebutton.png' width='12' height='12' alt='PearlSquirrel'/>
                    </button>
                </div>

あなたのjQueryコード:

function upvote(obj,box){
$(obj).children('.upvoteimage').load('upvote.php?box=' + box);
}
于 2012-09-03T05:45:33.870 に答える
0

ボタンの兄弟を参照し、upvoteimageクラスの兄弟をフィルタリングしています。

あなたがしたいことは、兄弟を参照し、次にクラスupvoteimageの彼らの子供を選択することです:

$(this).siblings('.button2').children('.upvoteimage').load('upvote.php?box=' + box);
于 2012-09-03T05:44:49.603 に答える
0

それは兄弟ではなく子供です y それは起こっていません

あなたが試すことができます

$(this).siblings('.button2' > '.upvoteimage') 

このようなものがうまくいくと思います

于 2012-09-03T05:52:38.567 に答える
0

.on()インラインで行うのではなく、イベントをバインドするために使用する必要があります。

upvote関数には、thisクリックされたボタンではなくウィンドウオブジェクトがあります。

upvote クラスの img は、兄弟ではなくボタンの子です。

img タグには何もロードできません。空のタグです。

于 2012-09-03T05:56:33.010 に答える