2017-02-10 6 views
-1

自分のフォトギャラリーを作成する大きな画像に小さな画像を読み込んで拡大したいと考えました。まず、html()に使用しますが、メイン(小)写真を削除するか、何もしません(メインデータをデリートすることなくhtml()を使用する方法はいくつかありますがtchemの作業はありません)。だから私はclone()を使うように試みました。しかし、私はそれを私にエラーを与えるhtml()と組み合わせてみてください:this.cloneは関数ではありません。再び私は解決策を見出そうとしますが、何も働かない。 「...、私を助け、私が間違って何をしたか説明してくださいjQuery clone()とhtml()は関数ではありません

<script> 
var GallObj={ 
    img:<?php echo json_encode($GetImg->jsonData); ?>, 
    imgIndex:new Number, //storage data about index of enlaging picture 
} 

var showAllImg = $.map(GallObj.img, function(val, i) { 
    return "<img src='gallery/"+val+"' class='smallimg'>"; 
}); 

$("#gallCont").html(showAllImg.join("")); 

$('.smallimg').click(function(){ 
    GallObj.imgIndex=$('.smallimg').index(this); 

    //it work, but I need change it and use html() because it doesn't change one loaded photo to new loaded photo of course: 
    $(this).clone().appendTo($('#picture')); 

    // this two removed clicked oryginalny picture and I don't want it: 
    $('#picture').html(this) 
    $('#picture').html(this).html(); 

    //this.clone is not a function error: 
    elm=this.clone(); 
    $('#picture').html(elm); 

    //this.clone is not a function error:  
    $('#picture').html(this.clone()); 

    //do nothing: 
    $('#picture').clone().html(this); 

    //do nothing: 
    var value=$(this).html(); 
    $("#picture").html(value); 


    $('#mask, #fixed, #picture, #close').css('display','block'); 
    $('#mask').animate({'width':'100%','height':screen.height +100, opacity:'0.5'}); 
    $('#picture').animate({width:'900'}); 
    $('html, body').animate({scrollTop:0}, 1500); 
}) 
</script> 

this.clone()

+1

あなたは 'clone()'と 'html()'を使っている場所がいくつかあります。 j08691がエラーを受け取った理由を回答しましたが、あなたのコードはかなり混乱しています。 'this'で' html() 'を呼び出すべきではありません。 ['html()'](http://api.jquery.com/html)は、文字列(または関数ですが、HTML要素やjQueryオブジェクトではありません)としてHTMLを使用して呼び出されることを意図しています。 –

+0

ここではclone()とhtml()をいくつかの場所で使用しています。私が使用しようとしたソリューションを表示するためには動作しませんでした。だから代わりに私のコードで使用する必要がhtml()のod? – FKa

+0

何をしたいかによって異なります。 "#picture"の内容を要素に置き換える場合は、['empty()'](http://api.jquery.com/empty/)に続けて['append'](http:// api.jquery.com/append/)があなたの最良の賭けになるでしょう。しかし実際には、jQueryのチュートリアルを見て、ドキュメントを読んでください。 –

答えて

6

.clone()は、jQueryの機能ですが、あなた:ここに は、私が使用することをしようと試みたソリューションや効果を持つ私のコードです普通のJavaScriptであるthisでそれを使用しようとしています。

代わりに$(this).clone()を試してください。

+0

それは働く! :-) ありがとうございます – FKa

関連する問題