JQ 如何获取Session 的值

JQ 如何获取Session 的值,第1张

你要想在页面取这个值的话可以用一个隐藏域来接收这个值。

string param = stringEmpty; //页面后台申请变量

param = Session["userId"]ToString(); // 窗体加载事件里给变量赋上session的值

页面放隐藏域得到值

var userId = $("#hid")val(); //取值

<input id="hid" name="hid" type="hidden" value="<%=param %>" /> //放值

events:一个或多个用空格分隔的事件类型和可选的命名空间,如"click"或"keydownmyPlugin" 。

selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择器为null或省略,当它到达选定的元素,事件总是触发。

data:当一个事件被触发时要传递eventdata给事件处理函数。

fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。

当第二个参数'selector'为null时,on()和bind()其实在用法上基本上没有任何区别了,所以我们可以认为on()只是比bind()多了一个可选的'selector'参数,所以on()可以非常方便的替换掉bind()

在 14之前相信大家非常喜欢使用live(),因为它可以把事件绑定到当前以及以后添加的元素上面,当然在14之后delegate()也可以做类似的事情了。live()的原理很简单,它是通过document进行事件委派的,因此我们也可以使用on()通过将事件绑定到document来达到 live()一样的效果。

1、live()写法

2、on()写法

这里的关键就是第二个参数'selector'在起作用了。它是一个过滤器的作用,只有被选中元素的后代元素才会触发事件。

delegate() 是14引入的,目的是通过祖先元素来代理委派后代元素的事件绑定问题,某种程度上和live()优点相似。只不过live()是通过document元素委派,而delegate则可以是任意的祖先节点。使用on()实现代理的写法和delegate()基本一致。

1、delegate()的写法

2、on()写法

貌似第一个和第二个参数的顺序颠倒了一下,别的基本一样。

就是页面中的方格可以拖动并调整大小,数字实时改变,本来是让我加宽高实时显示的这样一个小功能,但是确遇到了坑爹的情况。

我发现里面的盒子 点击次数越多,拖动的 *** 作越多,就越是卡,最后就像死机了一样,非常的卡顿。

我察觉到这可能是因为事件触发过多引起的,于是我吧监听鼠标的事件 consolelog 了一下。发现除了事件触发的多之外,还有一点匪夷所思,我多次点击拖动 *** 作之后,我再次点击一下盒子,竟然触发了十几次的 mousedown 事件。

这个原本是要点击一次 触发一次的事件,竟然点击一次触发了十几次。

原本,外面盒子的 mousemove 事件的监听,用于改变鼠标样式,用于改变鼠标在小盒子上的移动、左上、右上、左下、右下样式的改变。于是我觉得他不需要触发的非常频繁,于是我加上了节流函数,限制他的触发次数。

限制住了外层的 mousemove 测试了一下,并没有解决卡顿的问题,但是事件触发的频率确实降低了。

里面的思路是这样的。我在外层的事件点击下去的的时候,开始监听里面的小盒子的鼠标事件,于是我把小盒子的鼠标事件嵌套在了外层的 mousedown 事件里面,即

类似这样的,我 consolelog 的时候发现所有的事件,都是越点越多,越点越多,就跟我平时写的bug一样,mmp,怎么就不跟我头发一样呢。

于是我查询了 jquery 中的事件监听,发现他本身的监听事件,是累加触发的,比如

你就会打印出1和2, 后者不会覆盖前者,而是多有事件都叠加在一起触发,这也就是为什么我点击一次触发好多次,越点击越多的罪魁祸首。那知道了根源,就好办了,来人,拖出去砍了!

于是在监听生效之前,先解绑一次事件,就可以解决这个问题

这样 再配合之前的节流函数,节流 mousemove 事件的触发频率,就可以完美解决卡顿的问题了,因为一般视觉效果60帧比较流畅,所以时间最好设置为16ms以下,这样一秒至少触发60次,就会看起来比较流畅了。哦对了,偷的 博客链接

没理解你的提问,你的重点是each还是 *** 作动态添加的DOM?

关于 *** 作动态添加的DOM,需要用delegate或on来进行事件绑定,动态添加的DOM元素也同样绑定了该事件,原理就是事件代理,即事件冒泡。

<div class="container">

    <ul class="list-wrap">

        <li class="item">1</li>

        <li class="item">2</li>

        <li class="item">3</li>   

    </ul>     

</div>$('container')delegate('item','click',function(){

    handler();//执行函数

})

3 如果必须用each来 *** 作,可以使用自定义事件,当添加新DOM之后,trigger('event_name')即可。在绑定自定义事件时的handler执行函数逻辑中使用each即可。只有dom插入页面后,才能获取到该元素

以上就是关于JQ 如何获取Session 的值全部的内容,包括:JQ 如何获取Session 的值、jquery绑定事件on()方法、jq事件累加bug导致的事件卡顿等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10090010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存