zTree v3.0 正式版发布后,整体反映还不错,我很高兴。 不过昨天 有位叫做 amixu 的朋友发现了一个让人有些烦恼的bug(请打开 v3.0 正式版 下载文件中的 core/url.html) 你会发现如果在 IE 下 那个 Nothing 的节点点击后依然会进行跳转,return false 失效了。(由于目前机器不是win7 所以 IE9 没有进行测试,这里说的 IE 是 6 7 8 )
经过检查和反复测试,发现原因是 IE 在处理 onclick 和 后期绑定的 click 事件时对于默认操作的处理出现了问题。(个人认为应该属于 IE 的bug)
因此,昨天我及时修正了 API 中关于 treeNode.click 的说明文档,请大家尽量不要利用 treeNode.click = "return false;" 来阻止点击节点 url 跳转。 需要阻止跳转时,建议 不要将 url 路径保存在 treeNode.url 属性下; 同时利用 onClick 回调函数进行跳转控制。
另外,如果一定要使用click属性,可以参考下面测试代码中使用的 stop 方法来实现。
这里特别感谢 amixu 和 czwlucky 两位朋友的大力协助。 同时也希望大家能一起讨论这个问题。
附件中是测试代码
下面是关于测试找出的事件处理机制的差异:
分享到:
相关推荐
return <button onClick={this.handleClick.bind(this)}>Click me; } } ``` 这里使用`.bind(this)`来确保`handleClick`中的`this`指向组件实例。然而,这种方式会产生额外的性能开销,因为每次组件渲染时都会创建...
element.addEventListener('click', function(event) { eval(functionName + "('" + pageIndex + "');Pager.SetCurrent(" + pageIndex + ");"); }, false); } ``` 需要注意的是,尽管这些方法可以解决兼容性问题...
在讨论如何在使用jQuery移除button元素上的inline onclick事件以及如何处理不同浏览器兼容性问题时,本文将详细探讨以下关键知识点: 1. inline onclick事件的工作原理和其潜在问题。 2. jQuery中移除和绑定事件的...
值得注意的是,jQuery中的事件方法通常是JavaScript事件前加上`on`,例如`onClick`、`onmouseover`,但在`bind()`方法中直接使用不带`on`的事件名即可。 `eventData`是可选参数,用于传递额外的数据给事件处理函数...
$('#div2').bind('click', fun).trigger('click'); ``` 这里,jQuery的`bind`会先注册事件监听器,然后`trigger('click')`会触发事件。但是,jQuery内部实现使得事件监听器在内联事件处理程序之前执行。这可能是出于...
在JavaScript编程中,闭包、bind和this是三个非常重要的概念,它们经常在实际开发和面试中被提及。本文将通过一道具体的面试题来探讨这三个概念,并提供三种不同的解决方案。 首先,我们来看一下问题背景:我们需要...
然而,如果绑定的函数与已存在的`onclick`属性冲突,可能会导致问题。 4. 自己想到的解决方案: 开发者可能使用了一个自定义的包装元素(例如`span`)来包含按钮,并通过操作`span`来达到改变按钮事件的目的。这种...
document.addEventListener('click', onClick.bind(obj, 'p1', 'p2'), false); function onClick(a, b) { console.log(this.name, a, b); // onepixel p1 p2 } ``` 这些方法在JavaScript中广泛应用于继承、...
这段代码的作用是在document对象上监听click事件,而当事件发生时,它会检查事件的目标元素是否符合选择器“.add_project”。如果是,那么就会执行定义好的函数,即弹出一个警告框显示“1”。 这段代码中涉及到了几...
return <button onClick={this.increment}>Click me; } } ``` 这样,即使`increment`方法在事件处理器中被调用,`this`也会正确地指向`MyComponent`的实例,从而能够访问和更新状态。 除了`bind-all`,还有其他...
$('#clickmebind').bind(click, function(){ alert(Hello World bind); }); 第三种方式: $('#clickmeon').on('click', function(){ alert(Hello World on); }); }); 注意:第三种方式只...
$("#btnAdd").bind("click", function () { alert("bind click3"); }); }); function add1() { alert("add1()"); } ``` 在这个例子中,点击按钮`#btnAdd`会依次弹出"bind click1", "bind click2", "bind click3"的...
通过上述的处理方法,我们就可以有效地解决Vue自定义拖拽指令时与click事件冲突的问题,同时也能解决Vue子组件生命周期相关的问题。这不仅提高了用户界面的友好性,也增强了程序的健壮性和可维护性。希望这些知识点...
这种方法类似于JavaScript内置的`Function.prototype.bind`方法。下面提供了一个`bindFunction`方法的实现,通过循环收集传递给`bindFunction`的参数,并返回一个新的函数,这个新函数会在被调用时使用`apply`方法,...
- **`unbind()`方法**: 与`bind()`相对应,用于移除之前绑定的事件处理器。 - **`one()`方法**: 类似于`bind()`,但只执行一次后自动移除该事件处理器。 - **事件委托的最佳实践**: 尽量将事件绑定到离目标元素最近...
首先,传统的绑定事件方式,如直接在HTML元素上使用onclick属性,或者使用jQuery的.bind()方法,只适用于在绑定事件时已存在于页面上的DOM元素。对于后来动态添加到页面中的元素,这些事件监听器不会被自动应用。...
return <button onClick={this.handleClick}>Click me; } } ``` 2. **箭头函数**:另一种定义方法的方式是使用箭头函数,它能确保`this`上下文正确指向组件实例。但需要注意的是,这种方式每次渲染时都会创建新...
上面使用到的 on 和 bind 方法效果是一样的。 方式四:使用 jQuery 的 on 方法绑定大事 使用 jQuery 的 on 方法可以给多个元素绑定一个或多个大事。例如: `$("#btn-list").on("click","input",function(evt){ ...
const unbind:UnbindFn = bind(button,{type:'click',listener:onClick,}); //完成后:unbind(); 从'bind-event-listener'导入{bindAll}; const unbind = bind(button,[{type:'click',listener:...