为了账号安全,请及时绑定邮箱和手机立即绑定

请教jquery函数操作

请教jquery函数操作

慕桂英4014372 2023-07-06 11:02:50
我是一名学生,我学习编程不久。下面的代码比实际代码简化了以供解释。'test()'实际上是获取数据的Ajax函数。我的目标是为分页操作制作“标签”。但是当我单击“a tag”时,“$(document).ready”内部的“test()”在“a tag”点击事件发生后被调用。所以页面总是回到1。我不知道为什么会发生这种情况。有人可以帮助我吗?谢谢你!<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js"></script><script type="text/javascript">var page = 1;$(document).ready(function(){    test();    alert(page);});function test(){    for(var i = 1; i <= 3; i++) {        var a = $("<a></a>").text(i).attr({            href: "",            idx: i        });        a.preventDefault;        $(a).click(function(){            page = $(this).attr("idx");            test();            alert(page);        });        $("#pageLink").append(a," ");    }}</script></head><body>hello!<div id="pageLink"></div></body></html>
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

由于某种原因,您在 test() 内部调用 test() 。您还需要更改一些小事情

  • jQuery 对象带有 $ 前缀。var $a=...以避免歧义。

  • PreventDefault用于事件,而不是 jQuery 对象。$a.click(function(event){event.preventDefault();...});

否则它会按我相信您想要的方式工作,在单击时提醒页码。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){

    createLinks();

});

function createLinks(){

    for(var i = 1; i <= 3; i++) {

        var $a = $("<a></a>").text(i).attr({

            href: "",

            idx: i

        });

       

        $a.click(function(event){

            event.preventDefault();

            page = $(this).attr("idx");

            // why are you calling this again? // test();

            // maybe you want to load something // loadSomething(page);

            alert(page);

        });

        $("#pageLink").append($a," ");

    }

}

</script>

</head>

<body>

hello!

<div id="pageLink"></div>

</body>

</html>


查看完整回答
反对 回复 2023-07-06
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信