如何解决如果在jsTree内,则jQuery单击处理程序将不起作用
|| 首先我的问题。如何使按钮“在jsTree内部”起作用?定义为“ 0”时有效。 但是现在我使用jQuery处理程序来单击按钮。工作良好。参见示例http://jsfiddle.net/radek/5xym7/4/ 我将处理程序定义(如下)复制到了我现有的代码中(将其复制到此处有点大,而且不确定调试问题需要提供哪一部分)$(\'button[type=button]\').click(function(){
var params = $(this).val();
document.getElementById(\"results\").innerHTML+=\"<BR>\"+params.split(\'|\')[0]+\" - \"+ params.split(\'|\')[1]+\" - \"+ $(this).next().prop(\'checked\');
});
页面外观
但是它不适用于jsTree内部的按钮,另一方面,<div id=\'jstree\'></div>
外部的按钮可以与我的处理程序一起使用。
jsTree中的按钮的html
<button value=\"login|basic\" class=\"run square_button button_background\" type=\"button\"> run </button>
<input name=\"restore\" title=\"restore before ant run\" type=\"checkbox\">
jsTree外部的按钮的html
<button class=\'run square_button button_background button\' id=\'search\' type=\'button\' value=\'Search\'>
Search
</button>
解决方法
在您的示例中,您绑定了$(document).ready()的click事件,但是在$(document).ready()函数外部初始化了jsTree对象。 jsTree创建块将在源的那部分加载后立即执行,而$(document).ready()将在加载整个DOM之后执行。因此,当您尝试绑定到它们的click事件时,本质上讲jsTree包含的按钮尚不存在。
解决此问题的两种简单方法:
使用jQuery \的live()函数允许绑定动态创建的DOM节点
重新组织代码,因此jsTree初始化也发生在$(document).ready()中,并在创建jsTree之后绑定到click事件
我对您的小提琴做了后者,现在看来工作正常。 http://jsfiddle.net/5xym7/6/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。