jquery重复性的代码简化。

2024-11-07 15:28:15
推荐回答(4个)
回答(1):

$(function () {
    var arrA = $("a").click(function () {
        $.scrollTo('li:eq(' + arrA.index(this) + ')', 1000, {
            offset: {
                top: -5,
                left: -100
            }
        });
    });
});

回答(2):

用脚本写,在body里边这样写:
<%
for(int i=0;i<10;i++){
out.print("

");

out.print("");//自己看情况定,要输出几个i就小于多少

out.print("
");

}

for(int j=0;j<10;j++){
//这儿写法同上,自己根据自己的情况写。不会的追问

}
%>
在点击的时候将此div的i值传到js里边。比如在div中用onclick=a(i);
js中可以这样写:
function a(i){
$.scrollTo( 'li:eq(i-1)', 1000, {offset: {top:-5, left:-100} });

}

回答(3):

你好!

我理解你的意思想要动态生成一些标签,并且使其click与对应位置的li进行互动吧。

可以参考下面代码···

$(document).ready(function(){
     //遍历li元素
     $.each($("ul>li"),function(index){
            //获取li元素索引,个位数补0
            var indexNum = index<10?"0"+index:index;
            //遍历中的li元素
            var _li               = $(this);
            //生成
标签并为其绑定click事件
            var tmpA         = $("点击进入"+_li.text()+"li
");
            tmpA.on("click",function(){
                   $.scrollTo( _li, 1000, {offset: {top:-5, left:-100} });
            });
            //追加到
中,为了容易定位,"tagA"是这个DIV的id.
            $("#tagA").append(tmpA);
            $("#tagA").append("
");
     });
});


ps:一般情况下不推荐元素的ID属性中出现特殊符号,比如这里标签中的'#',

       当然在这种情况下,依然是可以通过选择器获得到,比如$("#\\#li-00") 这种方式获取。



希望对你有帮助!!

回答(4):

大概是这个思路,a标签可以再限定一下条件。
$("a").each(function(i){
$(this).click(function(){
$.scrollTo( 'li:eq('+i+')', 1000, {offset: {top:-5, left:-100} });
});
})