
正文
jqueryon事不起作用,jquery不生效
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
jquery用on绑定事件
on指的是事件委托,举个例子,(document).on(click, .ontest, function () { //...});假设你的.ontest一开始不存在DOM结构当中,也就是html里面,如果你直接click(function () {});的话,事件是无法成功绑定的,而用on委托给document的话,在事件冒泡的时候,就可以成功出发绑定的事件。
bind()方法为每个匹配元素的特定事件绑定事件处理函数。bind()方法的底层逻辑是on()方法。 .bind() 方法是用于往文档上附加行为的主要方式。所有JavaScript事件对象,比如focus, mouseover, 和 resize,都是可以作为type参数传递进来的。
append的字符串中应该是 }); $(.btn).on(click,function(){ console.log(haha); }); //上面绑定的方式也不对。因为页面刚加载时$(.btn)并不包括后来生成的button。 //而且你第一个button,和之后生成的button。都是class=btn这样就没法区别了。
可以用事件委托,jquery提供on()方法(jquery 0 以上版本)来委托绑定事件: 导航1 导航2$(.list).find(a).on(click, function(){ $(this).addClass(active).siblings().removeClass(active);});这样.list里通过js动态创建的a节点也能响应click事件。
新建一个静态页面bind.html,并引入jquery核心文件。在标签中,插入一个button按钮,添加id属性值。在标签中,添加按钮点击事件,利用on()方法绑定。保存代码并运行项目,打开浏览器查看界面效果,点击按钮查看控制台。将on()方法改为bind()方法,然后保存代码,点击按钮查看打印结果。
相关问答
Q1: jquery让onclick事件失效怎么办?
1、需要把代码写在$(function(){ });中 (function(){ (#tables).append();}); (function(){ });的意思是等到所有的DOM元素可用了才执行javascript代码。
2、页面加载完毕后,文档流会关闭。所以动态插入的DOM上的方法是不可被解析执行的。
3、function(){……});相当于$(.class).bind(click,function(){……});(document).on(click,.class,function(){……});相当于$(.class).live(click,function(){……});js生成的元素绑定事件必须使用live,但新版的jq,已经淘汰了live,可以用on方法代替,但必须注意写法。
4、你可以用mousedown方法,鼠标按下触发事件,在mousedown时执行click事件里的内容。如果就是像你说单击鼠标不松开的话click事件必然不好用,只能换别的事件,你去百度W3school查下Jquery的事件,里面有mousedown和mouseup事件,你可以具体看看。
5、只有使用单一DOM模型,jQuery 内存中的那些对象才不会在页面切换时丢失,如果我们切换到其它页面就好像我们在浏览器的地址栏上直接输入另一个网址一样,那时当前页面所对应的内存会丢弃,并在新页面加载时重新建立,因此不可能记住原来的内存是什么样的。
6、如果第一次点击无效 就出现在你第一句值的判断上了,你如果要判断值是否和默认的值一样 不要在程序里自己手动设置,而让它直接读取:var defaultHtml=$(this).html();然后你程序里和这个defaultHtml的值来比较。
Q2: jquery事件绑定.on(),绑定的onfocus事件ie11以下不起作用
1、新建一个静态页面bind.html,并引入jquery核心文件。在标签中,插入一个button按钮,添加id属性值。在标签中,添加按钮点击事件,利用on()方法绑定。保存代码并运行项目,打开浏览器查看界面效果,点击按钮查看控制台。将on()方法改为bind()方法,然后保存代码,点击按钮查看打印结果。
2、one(eventType,fn)。具体可以这样做:(function(){ (#s1).one(click,showDIV(1));});jquery还有一个解除事件委派的方法:unbind([eventType])。参数是可选的,如果不选,则表示移除节点所有已绑定事件。这里你只需要解除click事件,可以用$(#s1).unbind(click)来处理。
3、道理很简单,在你绑定事件的时候,那个div对象还没有添加到画面上,你通过:$(#div + i + j) 是筛选不到任何对象的。所以你的事件肯定绑定不上,没什么作用了。
Q3: 我使用jquery中的append方法,动态添加新的元素内容,新添加的元素上的o...
代码如下: 测试 我通过$(#test1).append(新添加的元素input type=button value=点击 onclick=alert(1) ); 在test1中增加了新的元素,但是点击按钮,没有任何反应。
jquery中有一个叫live的方法:jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。
通过 append() 和 prepend() 方法添加若干新元素 上面的例子中,我们只在被选元素的开头/结尾插入文本/HTML。但是append() 和 prepend() 方法能够通过参数接收无限数量的新元素。可通过 jQuery 来生成文本/HTML或者通过 JavaScript 代码和 DOM 元素。
jQuery 3中新增的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。也能绑定自定义事件。目前支持 click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup。
alert(123)/);}); (function(){ });的意思是等到所有的DOM元素可用了才执行javascript代码。
Q4: jquery中的.on在外部js文件,是不是会失效?
1、js生成的元素绑定事件必须使用live,但新版的jq,已经淘汰了live,可以用on方法代替,但必须注意写法。
2、使用ajax做区域更新,在更新之前要将绑定的事件移除,在更新完DOM之后要重新绑更新区域内的事件。在PageRequestManager的pageLoading和pageLoaded事件来处理就好。
3、具体可以这样做:(function(){ (#s1).one(click,showDIV(1));});jquery还有一个解除事件委派的方法:unbind([eventType])。参数是可选的,如果不选,则表示移除节点所有已绑定事件。这里你只需要解除click事件,可以用$(#s1).unbind(click)来处理。
Q5: jquery动态添加的按钮或者表格,在其上面添加onclick事件没效果怎么回事...
1、(function(){ });的意思是等到所有的DOM元素可用了才执行javascript代码。
2、jquery中有一个叫live的方法:jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。
3、);如果你把函数放在click事件外面,最初加载页面的时候,$(.J_classtree)就找不到.J_classtree这个类,那段功能函数就添加不了了。
4、jquery对动态加载的li添加click事件,事件无法触发时设置出现了问题,解决方法为:新建html文件。创建输入框和按钮。预览效果如图。接下来需要引入jquery.js。设置输入框 keydown 事件和click 事件。按钮点击触发事件。click按钮按下效果如图。
关于jqueryon事不起作用和jquery不生效的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







