0

関数にしたいスニペットがあります。しかし、私はjavascriptを初めて使用します。明らかに、変数を渡す方法または変数を呼び出す方法に問題があります...

つまり、一言で言えば、これは機能します:http: //jsfiddle.net/kkvbz/ しかし、これは機能しません:http: //jsfiddle.net/PrtD4/

問題は、関数として必要なので、1つのバージョンを機能させる必要があることです。

完全なスニペット:

function cutandMakeslides (containerid,liperslide) {
//This is for footer slider, it rewrites 1 ul into several uls that contain 4 li max.
    // get the container, useful for later too...
    var container = $(containerid);

    // get all available UL and LI elements...
    var li_elements = container.find("> UL > LI").clone();

    // remove the current content so that we can rebuild it for the slider...
    container.find("> UL").remove();

    // build the slider container...
    var slide_container = $("<div />");

    // tricky part: looping through the LI's and building each of the slides...
    // first create some helpful variables...
    var li_elements_per_slide = liperslide;
    var li_counter = 0;

    // create the first slide, with a UL to hold the LI's...
    var current_li_div = $("<div />");
    current_li_div.append($("<ul />"));

    // loop through the LI's...
    li_elements.each(function(index, element){

        li_counter++;
        var current_li = $(element).clone();
        current_li_div.find("> UL").append(current_li);

        if (li_counter % li_elements_per_slide == 0)
        {
            // we've hit 4 in this list, so add the slide and make
            // a new one, using same code as before...
            container.append(current_li_div);
            current_li_div = $("<div />");
            current_li_div.append($("<ul />"));
        }

    });

    // we might have an uneven number of LI's, so we need to check for this...
    if (li_counter % li_elements_per_slide != 0)
        container.append(current_li_div);
} // end function cutandMakeslides


    //activate function above
    $(function() { cutandMakeslides(".fproductslides",3); });

問題のある部分:

function cutandMakeslides (containerid,liperslide) {
var container = $(containerid);
var li_elements_per_slide = liperslide;
}
$(function() { cutandMakeslides(".fproductslides",3); });
4

2 に答える 2

0

'問題のある部分'セクションから、変数名が私を導くので、Idの代わりにクラス( "。fproductslides"はクラスであり、クラスは'。'で始まり、Idは'#'で始まります)を渡そうとしているようです。あなたがやりたいと信じています...

于 2013-01-17T15:13:52.407 に答える
0

したがって、コードをフィドルに移動して徹底的にテストした後、フィドルに移動するときに問題が解決したように見えるので、小さなスペルまたは構文エラーがあったと思われます...ただし、コード比較ツールを使用することはできませんでした何かを見つける...

問題のある部分にはエラーがないようです。

function cutandMakeslides (containerid,liperslide) {
var container = $(containerid);
var li_elements_per_slide = liperslide;
}
$(function() { cutandMakeslides(".fproductslides",3); });    

これが作業中のフィドルのコピーです

于 2013-01-17T15:23:50.687 に答える