jquery分页-标签的属性值和window域函数

         最近的项目中应用到很多ajax分页技术,为此项目组开发了一个分页的js插件,目前正在测试使用中。我有幸参与了这个插件的一部分设计和代码编写,个人对其中一些技巧深感妙趣无穷,所以急不可耐的分享给大家。

         分页展示数据的时候,有一些列的数据是需要做额外的加工的,比如后台返回一个字符串,但是前台需要显示成一个超链接,这就带来了一个问题。我们需要程序员传入一个函数,这个函数会根据后台传入的数据来组装最终显示的html字符串,比如,组装成超链接,我们姑且把这个函数称为加工函数吧。这个函数应该怎么传递呢?起初我们想让程序员在传递分页的基本要素的时候传入一个具体的函数对象,后来发现这样设计的话,传入的数据结构比较复杂,书写起来很丑。后来,我想到了一个替代的方案,并最终加入了现有的插件,目前和前面提到的传入方式是并存的。大家看我我下面讲得以后,可以判断一下那个更好用一点。 

        几个月之前我对html基本还处于一知半解的时候,我只知道html里各种标签有标准的属性,比如name,id,还有自己特有的属性,比如input的type等等。后来我明白了,除了这些之外,你也可以自己随意给标签指定属性名和值,并且,通过标准的方式获取它。


        我从一些网上的教程上了解到,直接定义在页面中的js函数,它们都默认在window域中,比如,定义一个函数 function f1() { } , 通过window['f1']就能调用这个函数。

        根据上面两个理论,我对分页插件的加工函数的传递做了改动。

        首先,定义展示数据的table中,<td>标签中添加属性fn : <td fn="f1"></td>

        其次,在插件中,解析table的结构时,读取这个fn属性 $("td").attr("fn"),这样就获取到这个fn的名字,存储起来。

        然后在解析后来返回的数据时,假设这个对应数据的名称为val, 通过window['funcName'](val),获取处理后的html字符串。

        接下来的工作,就是讲这个html字符串拼接到表格中,组成数据行了。


        除此之外,这个标签属性还有其他的用处,比如td标签加一个field属性,用来从ajax返回的json对象中匹配对应的属性。加一个parameters属性,用于暂时存储一些额外的但是会用到的属性值。比如,前面讲的动态组装的超链接,如果我们要给这个超链接绑定触发函数,而且这个触发函数需要调用一些额外的参数,那这些参数就可以暂时存储在这个parameters属性中,当点击超链接的时候,动态获取。

     

        上面这些技巧其实都是来自html和js的基本知识,但是很可惜,掌握的人很少。甚至我在项目组中请教的时候,很少能有人回答这些问题,大家最热衷的还是讨论jquery的应用。jquery是很方便很快捷,这个我承认,自从我认识了jquery之后就很少用原生js的方式来访问dom了。可是说到底,jquery也只是js的一个框架,而框架能做的事也就只有它擅长的那么一点了。你说呢?如果哪一天jquery出bug了,你会调试吗?现在我可能不会。但是,只要你想,终究能学会的。


       

        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值