我希望能够将隐藏字段的值设置为链接中 rel 属性的值:
$("#currentDir").val($(".jstree-clicked").attr("rel"));
但这不起作用。然而,这个更简单的表达式工作得很好:
$("#currentDir").val("TEST");
这会将 id = currentDir 的隐藏字段设置为值“TEST”。但是为什么其他表达式不起作用?
编辑:
正如所指出的,当调用此语句时,具有类 jstree-clicked 的元素不存在。正如我在下面评论的那样,我认为它需要作为回调进入。但我不知道在哪里(尝试了几个地方,但都没有工作)。
这是 JsTree 代码:
<script type="text/javascript">
var url;
$(function () {
$("#demo2")
.bind("loaded.jstree", function () {
alert($(".jstree-clicked").length); //This works as a callback, but unfortunately the cookie seems to not have been set yet...
$("a").click(function () {
url = "?url=" + $(this).attr("rel");
$('#result').load('/Customers/Files/' + encodeURI(url));
$('#currentDir').val($(this).attr("rel"));
});
}).jstree({
"html_data": {
"ajax": {
"url": "/Customers/Directories/"
}
},
"ui": {
"select_limit": 2,
"select_multiple_modifier": "alt",
"selected_parent_close": "select_parent"//,
},
"themes": {
"theme": "classic",
"dots": true,
"icons": true
},
"plugins": ["themes", "html_data", "ui", "cookies"]
});
});
</script>
如您所见,我已经有一个回调,它在点击时设置 currentDir 隐藏字段的值。但由于也会有回发,我正在使用 cookie 插件重新加载页面,该插件将 JsTree 设置为与以前相同,jstree-clicked 表示选定的文件夹。所以点击函数工作正常,并设置 currentDir,但在回发后我需要进入另一个回调(我假设我最初在这里询问的语句,即在树创建之后。)
我不认为像几个人要求的那样在这里发布 html 源代码真的有任何意义,它有类和所有东西,但我会给出同样的,来自 Firebug:
<a rel="HtmlHelpers" class="jstree-clicked"><ins class="jstree-icon"> </ins>HtmlHelpers</a>
问题似乎是在调用函数时它还没有。因此,再次感谢您在正确的位置(回调?)获得声明的任何帮助!
编辑2:
好的,所以我得到了一个回调,它实际上是在加载树后触发的(请参阅上面 .bind 部分中的添加内容)。但似乎即使加载了树(通过显示元素数量的警报框确认),cookie 插件似乎没有运行,所以我之后的语句仍然没用。我现在插入的语句是其中一个回复中建议的语句,用于检查 jstree-clicked 元素是否存在,但它仍然不存在。所以有谁知道在cookie设置了jstree-clicked类后如何调用它?