0

外部ページを呼び出すajax関数を実行していますが、内部に画像があるアンカータグを選択するのに問題があります。この関数は、プレーンテキストの場合は機能しますが、画像が内部にあると機能しなくなります(画像の外側でアンカータグ内をクリックした場合を除く)。

htmlはこんな感じです。

    <div id="add_content">
        <a href="page_1.html"> Text works fine</a>
        <a href="page_2.html"><img src="thumbnail.jpg"/>Image doesn't work</a>
    </div>

    <div id="insert_here"> </div>

外部ページの例は次のとおりです。

    <div id="thumbnails">
        <img src="images/1.jpg"/>
        <img src="images/2.jpg"/>
        <img src="images/3.jpg"/>
    </div>

私が実行しているスクリプトは

       $(document).ready(function (){
            $('#add_content a').click(function(e){
                e.preventDefault();
                $('#insert_here').load(e.target.href + '#thumbnails').hide().delay(100).fadeIn(500);
            });
       });
4

2 に答える 2

4

e.target.hrefに変更this.href:

$('#insert_here').load(this.href + '#thumbnails').hide().delay(100).fadeIn(500);

子画像をクリックすると、その画像になり、画像にはプロパティe.targetがありません。hrefクリック イベントはアンカーにバインドされるため、クリック ハンドラー内でクリックされthisたアンカーになります。

現在のコードが「画像の外側でアンカータグ内をクリックしたときに」機能した理由は、その場合e.targetはアンカー自体であるためです。

于 2012-11-06T02:44:20.030 に答える
0

行が次のようになるように、id セレクターの前にスペースを入れます。

$('#insert_here').load(e.target.href + ' #thumbnails')
于 2012-11-06T02:44:11.417 に答える