2

私はjsが初めてで、約1週間しか学んでいないので、親切にしてください。以下のスクリプトは、.thumb のクラスを持つリンクがクリックされたときに、同じ iframe のカスタム データ属性に一致するように iframe の src を変更します。

これは正常に機能しますが、現在、.gallery の親 div クラスを持つすべての iframe のすべてのクラスの iframe src を変更しています。.gallery の iframe src を変数 'c​​licked' と同じインデックス値に変更したいだけです。

//When an link with a class of .thumb is clicked

$(document).on('click', '.thumb', function () {

    //variable index is the index of the links parent 'li'
    var clicked = $(this).parent('li').index();

    // Find iFrames of all .comm-gallery elements and alter their src to iframes data-src    value
    $('.gallery').find("iframe").prop("src", function(){

        // Set their src attribute to the value of data-src
        return $(this).data("src");
    });
});

過去数時間にわたって多数のループ ソリューションを試しましたが、どれもうまくいきませんでした。この時点で js についてほとんど知らないので、私はこれの最小公分母だと思います。どんな助けでも大歓迎です!

4

3 に答える 3

3

data-src を返す前に条件を追加

$('.gallery').find("iframe").prop("src", function(){
if($(this).index() == clicked)
  // Set their src attribute to the value of data-src
   return $(this).data("src");
});
于 2013-03-11T17:45:11.967 に答える
0

jquery eqセレクターは、次のようなものです。

http://api.jquery.com/eq-selector/

したがって、この:

$('.gallery').find("iframe").prop("src", function(){

    // Set their src attribute to the value of data-src
    return $(this).data("src");
});

になります:

$('.gallery').find("iframe").eq(clicked).prop("src", function(){

    // Set their src attribute to the value of data-src
    return $(this).data("src");
});
于 2013-03-11T17:46:13.623 に答える
0

クリックされたliのインデックスを持つ「gallery」cssクラスを持つ要素を選択する必要があります。

$(document).on('click', '.thumb', function () {
var clicked = $(this).parent('li').index();
$('.gallery').eq(clicked).find("iframe").prop("src",function({
return$(this).data("src");
});
});
于 2013-03-11T18:00:43.847 に答える