解决pjax重复加载js导致事件重复绑定的问题

个人博客 地址:http://www.wenhaofan.com/article/20180925232057

1.所有js统一在pjax容器外引入

在pjax容器外引入的js只会被引入一次,所以不会出现重复加载的问题,但是该方法仅适用于页面较少的情况,如果页面很多,那么会导致第一次访问时引入大量不一定会被适用到的js,效率低下。

2.将绑定事件和其他事件区分成两个js来引入

在pjax中判断是否已经引入绑定事件的js,如果已经引入则不再重复引入。

3.在js中添加代码判断是否已经被引入

目测采用这种方法居多,本博客后台也采用了这种方法

    $(document).ready(function() {

	//避免pjax重复加载js导致事件重复绑定
	if (typeof (isLoad) != "undefined") {
	    return;
	}
	isLoad=true;    }

判断的变量名起得越长越好,避免与其他页面的冲突

原文地址:https://www.cnblogs.com/fanwenhao/p/9704218.html

时间: 2024-10-31 01:10:22

解决pjax重复加载js导致事件重复绑定的问题的相关文章

jquery事件重复绑定解决办法

jquery事件重复绑定解决办法 一$.fn.live 重复绑定 解决:使用die()方法,在live()方法绑定前,将此元素上的前面被绑定的事件统统解除,然后再通过live()方法绑定新的事件. //先通过die()方法解除,再通过live()绑定$(“#selectAll”).die().live(“click”,function(){//事件运行代码}); 二click等事件 解决:使用unbind("click")方法先解除绑定的事件再绑定新事件,即在给对象绑定事件之前先移除该

解决jquery绑定事件重复绑定问题

解决jquery绑定事件重复绑定问题,以下用绑定click事件为例: 出现重复绑定情况: $(dom).click(function(e){})或者$(dom).on('click', function(e){}) 不管是click还是on都是会在原来方法上重复添加,所以我们需要如下做就可以解决 $(dom).unbind('click').click(function(e){}) 在绑定新click方法前对元素所绑定的click方法解绑

jquery中click事件重复绑定问题

在最近的项目中遇到这样一个问题: 从心愿单中删除产品,1.如果直接确定删除,则删除成功,2.如果先取消删除,再次点击再确认删除,则会出现问题,测试发现: 对未来元素(类名为deleteFav的对象)绑定click事件中,如果function中还包含有元素(简称A)的click事件,在点击两次删除按钮时会出现A 元素的click事件重复绑定的情况 $("body").on("click",".deleteFav",function(){//点击删除

jquery中事件重复绑定以及解绑问题

一般的情况下,对于这种情况,我们常规的思路是,先解绑,再绑定,如下: $(selector).unbind('click').bind('click',function(){....}); 当这样会有一个问题,unbind会把其之前的所有的click事件都unbind掉,可能会影响其他的绑定,有如下有两种方法解决: 第一种: 使用事件命令空间,来唯一标识这个click的绑定,这样在解绑是不会将其他click绑定的事件也给解绑. $(selector).unbind('click.selector

父节点和子节点事件重复绑定(如click)

以click事件为例,当父节点或子节点绑定了click事件后,点击该节点,事件会发生冒泡传递,即会造成事件重复绑定,这时候需要阻止事件的冒泡,采用stopPropagation 或cancelBubble等. stopPropagation() 方法 定义和用法 不再派发事件. 终止事件在传播过程的捕获.目标处理或起泡阶段进一步传播.调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点. 语法 event.stopPropagation() 说明 该方法将停止事件的传播,

jquery事件重复绑定的快速解决方法

click等事件 解决:使用unbind("click")方法先解除绑定的事件再绑定新事件,即在给对象绑定事件之前先移除该对象上的原有事件 1 $("#test2").unbind('click').click(function() { 2 alert("click解除绑定执行" + k++ + "次"); 3 }); 转自:http://www.cnblogs.com/shiyou00/p/5531049.html

jquery事件重复绑定

本文实例分析了jQuery防止重复绑定事件的解决方法.分享给大家供大家参考,具体如下: 一.问题: 今天发现jQuery一个对象的事件可以重复绑定多次,当事件触发的时候会引起代码多遍执行. 下面是一个click事件被重复绑定的示例: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 function reg_button_click(){   $("#button).click(function(){     alert("button click");   }

C#中窗口关闭时没有取消事件订阅导致事件重复执行的解决方法

场景 C#中委托与事件的使用-以Winform中跨窗体传值为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100150700 参考上面的博客. 现在是在主页面点击按钮时弹出窗体,在窗体的load事件中进行事件的订阅,然后关闭窗体,再次打开时执行触发事件后, 订阅的事件就会执行两次,依次类推. 这是因为在窗体关闭的时候没有将原来的事件订阅解除掉. 注: 博客主页: https://blog.csdn.net/badao_l

解决pjax重复绑定

个人博客 地址:http://www.wenhaofan.com/article/20180929002529 1.所有js统一在pjax容器外引入 在pjax容器外引入的js只会被引入一次,所以不会出现重复加载的问题,但是该方法仅适用于页面较少的情况,如果页面很多,那么会导致第一次访问时引入大量不一定会被适用到的js,效率低下. 2.将绑定事件和其他事件区分成两个js来引入 在pjax中判断是否已经引入绑定事件的js,如果已经引入则不再重复引入. 3.在js中添加代码判断是否已经被引入 目测采