`
zTreeAPI
  • 浏览: 340133 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于 onclick 与 bind ‘click’ 的讨论

阅读更多

    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 两位朋友的大力协助。 同时也希望大家能一起讨论这个问题。

 

 

    附件中是测试代码

 

    下面是关于测试找出的事件处理机制的差异:

 

 

 

0
0
分享到:
评论
11 楼 zTreeAPI 2014-03-30  
zTreeAPI 写道
c2012 写道
我需要用到url,公司数据库的一些父节点写url也不予许我删除,后台处理起来效率很低。前台我试了  onClick: zTreeOnClick  发现return false照样跳转url,有没啥好办法?

你这种特殊情况,可以直接修改 setting.data.key.url 设置为 一个不存在的属性名字即可!

补充一下, 如果是有的节点需要,有的节点不需要, 那么就接着前面的解决方案利用 onClick 回调捕获点击节点的事件,再根据 url 属性用js 跳转即可
10 楼 zTreeAPI 2014-03-30  
c2012 写道
我需要用到url,公司数据库的一些父节点写url也不予许我删除,后台处理起来效率很低。前台我试了  onClick: zTreeOnClick  发现return false照样跳转url,有没啥好办法?

你这种特殊情况,可以直接修改 setting.data.key.url 设置为 一个不存在的属性名字即可!
9 楼 c2012 2014-03-26  
我需要用到url,公司数据库的一些父节点写url也不予许我删除,后台处理起来效率很低。前台我试了  onClick: zTreeOnClick  发现return false照样跳转url,有没啥好办法?
8 楼 lovecrock 2012-02-25  
javascript 的onclick绑定方式问题确实比较多,我是能不用就不用了。
7 楼 czwlucky 2012-01-29  
jonlik 写道
新手,问个问题。
<frameset cols="22%,*" >
   <frame frameborder="0" name="leftFrame" scrolling="NO" noresize src="tree.jsp">
   <frame frameborder="0" name="mainFrame" noresize src="main.jsp">
</frameset>
java中jsp页面分割问题,我现在把树形菜单放到tree.jsp里面了,然后我在子节点增加url设置超链,跳转项目中的action,就是最简单的传参至后台servlet中,或者struts2的action中,原来点击action是靠<a href="XXX?action=XX&type=YYY" target="mainFrame">中的target="mainFrame"控制页面跳转时候页面中frame的name="mainFrame"发生变化,现在用了这个插件,我看了超链的介绍跳转至新页面了,我想在本页面中某个分割的部分中显示我action后的页面可以吗?

2、target 属性用于设置 页面跳转的窗口目标  这里设置成你的目标窗口就行了,不知道你的问题是在这个地方吗?
6 楼 jonlik 2012-01-23  
新手,问个问题。
<frameset cols="22%,*" >
   <frame frameborder="0" name="leftFrame" scrolling="NO" noresize src="tree.jsp">
   <frame frameborder="0" name="mainFrame" noresize src="main.jsp">
</frameset>
java中jsp页面分割问题,我现在把树形菜单放到tree.jsp里面了,然后我在子节点增加url设置超链,跳转项目中的action,就是最简单的传参至后台servlet中,或者struts2的action中,原来点击action是靠<a href="XXX?action=XX&type=YYY" target="mainFrame">中的target="mainFrame"控制页面跳转时候页面中frame的name="mainFrame"发生变化,现在用了这个插件,我看了超链的介绍跳转至新页面了,我想在本页面中某个分割的部分中显示我action后的页面可以吗?
5 楼 czwlucky 2012-01-13  
wudixcy 写道
上述的图形上面有个词“父DOM”这个我不太明白指的是什么?

就是指<a>的父级DOM元素  <div><a></div> div就是父DOM
4 楼 wudixcy 2012-01-13  
上述的图形上面有个词“父DOM”这个我不太明白指的是什么?
3 楼 zTreeAPI 2012-01-13  
wudixcy 写道
善总结,善分享,能从别人提出的一个问题,总结出这么多问题,我佩服的五体投地了,问题是谁都会碰到了,可是不是谁都会总结的

  过奖啦,毕竟目前 zTree 已经得到那么多朋友的支持,有问题就要尽可能处理的彻底一些嘛。这样也能避免其他朋友再出类似的问题。 另外也省的天天总有不同的人来问我同样的问题。。呵呵
2 楼 wudixcy 2012-01-13  
我就是amixu啦,我当时的需求是:树叶上必须有链接,当点击树叶时我要获取这个链接地址,但不需要打开它。现在虽然它在IE下有bug,但是我想了想后,完全可以通过另外一种方式实现需求。
{ id:1, pId:0, name:"ztree", link:"http://ztreeapi.iteye.com/"}
这样就可以保证<a>标签里无href。又能通过treeNode.link获取到链接地址
1 楼 wudixcy 2012-01-13  
善总结,善分享,能从别人提出的一个问题,总结出这么多问题,我佩服的五体投地了,问题是谁都会碰到了,可是不是谁都会总结的

相关推荐

    JQuery调用绑定click事件的3种写法

    $('#clickmebind').bind(click, function(){ alert&#40;Hello World bind&#41;; }); 第三种方式: $('#clickmeon').on('click', function(){ alert&#40;Hello World on&#41;; }); }); 注意:第三种方式只...

    一个使绑定和(特别是)解除绑定DOM事件更容易的实用程序-JavaScript开发

    const unbind:UnbindFn = bind(button,{type:'click',listener:onClick,}); //完成后:unbind(); 从'bind-event-listener'导入{bindAll}; const unbind = bind(button,[{type:'click',listener:...

    jQuery:unbind方法的使用详解

    jQuery:unbind方法的使用详解 一、前言 unbind方法只能解绑用jQuery的bind方法以及用jquery方法注册的事件处理程序。比如:$(‘a’).click(function(){})可以...$('a').bind('click',function(){}) 以下的事件不可以

    点击页面其它地方隐藏该div的两种思路

    思路一 第一种思路分两步 第一步:对document的click事件绑定事件处理程序,使其隐藏该div 第二步:对div的click事件绑定事件处理程序,阻止事件冒泡,防止其冒泡到document,而调用document的onclick方法隐藏了该...

    jQuery 相关控件的事件操作分解

    jQuery的绑定事件非常方便,有bind、live、one还有它帮你把一些常用的事件给单独了出来,比如控件的onclick事件,我们绑定onclick事件的时候只需要 代码如下: $(“#testButton”).click(function() { alert&#40;...

    gifv-player-events:略作修改的gifv播放器版本,使用带有单击事件监听器的按钮演示gifv的播放暂停

    删除了onclick和mouseenter事件侦听器: bindEvents: function ( ) { var player = this ; /* $[removed]('click.gifv', this.selector, function (event) { event.preventDefault(); var $player = $(this); ...

    jQuery给动态添加的元素绑定事件的方法

    jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定。在1.7版本以前使用live。但是在1.8版本以后推荐使用on。这里介绍jQuery中如何给动态...

    jquery的live使用注意事项

    那么,经过调试发现,出现问题的原因便在于$(“#id”).live(“click”, function() {});这个live身上,若使用bind可能达不到要求,因为若异步请求后返回请求为html而不是json的话,当使用html重新刷新页面时,bind...

    js的日历时间控件

    this.options=Object.extend(options||{},{onClick:this.pickerClicked.bind(this),onHover:this.dateHover.bind(this),onSelect:this.datePicked.bind(this)});var locale=this.options&&this.options.locale?this....

    网页制作完全手册

    The other a elements correctly bind the return value to the event, hence the default action can be canceled when false is returned. Preventing a Document From Being Cached You can prevent a document ...

    Html跳转代码

    // $("#VerifyCode").bind("click", function () { // $("#VerifyCode img").attr("src", "/Httpurl/RandomImage.ashx?time=" + Math.random()); // }); // $("#bt_login").bind("click", function () { // //alert...

    ASP.NET常用代码

    8.关于日期格式 日期格式设定 DataFormatString="{0:yyyy-MM-dd}" 我觉得应该在itembound事件中 e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd")) 9.获取错误...

    图库新版jQuery焦点图 JS代码

    tips[25] = '个人行为与小规模配合压根不需要流程与规范,当交付结果需要大规模的应用时,同一的规格就显得非常重要了。'; tips[26] = '任何创作活动都是为了满足一定的需求,创新是执行过程中的副产品;为了创新而...

    jquery插件使用方法大全

    代码 $(document).ready(function() { $("#clear").click(function(){ alert&#40;"i am about to clear the table"&#41;; }); $("form[12]").submit(validate); }); function validate(){ //do some form ...

    TMS Pack for FireMonkey2.3.0.1

    Built-in support for LiveBindings in TTMSFMXTableView and TTMSFMXTileList, allows to bind any item element to data Includes various demos and an extensive PDF developers guide Includes various helper ...

    Sortable前端框架

    document.getElementById("switcher").onclick = function () { var state = sortable.option("disabled"); // get sortable.option("disabled", !state); // set }; ``` --- #### `handle` option To make ...

    ExtAspNet_v2.3.2_dll

    -v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-&gt;AutoPostBack, Event ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-&gt;AutoPostBack, Event ...

Global site tag (gtag.js) - Google Analytics