Я хочу, чтобы иметь возможность установить значение скрытого поля на значение атрибута отн в ссылке:jQuery, чтобы установить значение скрытого поля?
$("#currentDir").val($(".jstree-clicked").attr("rel"));
Но это не работает. Это простое выражение прекрасно работает, однако:
$("#currentDir").val("TEST");
Это устанавливает скрытое поле с идентификатором = currentDir к значению «TEST». Но почему другое выражение не работает?
EDIT:
Как отмечалось, элемент с классом jstree щелкнул не существует, когда называют это утверждение. И, как я уже говорил ниже, я предполагаю, что он должен войти в качестве обратного вызова. Но я не знаю, где (попробовал несколько мест, но никто из них не работает).
Вот код 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 скрытого поля на мыши. Но так как будут и postbacks, я перезагружаю страницу с помощью плагина cookie, который устанавливает JsTree так же, как и раньше, с jstree-clicked, обозначающим выбранную папку. Таким образом, функция click отлично работает и устанавливает currentDir, но после обратной передачи мне нужно получить другой обратный вызов (я предполагаю, что изначально я спросил об этом здесь, то есть после того, как было создано дерево.)
Я не знаю «т думает, что есть на самом деле любая точка проводка источник HTML здесь несколько людей просили, у него есть класс и все, но я дам ему так же, с Firebug:
<a rel="HtmlHelpers" class="jstree-clicked"><ins class="jstree-icon"> </ins>HtmlHelpers</a>
проблема, как представляется, это еще не имеет его, когда вызывается функция. Так снова, любая помощь с получением заявления в нужном месте (обратный вызов?) Оценили!
EDIT 2:
Хорошо, так что я получил обратный вызов в том, что на самом деле вызывает после загрузки дерева (см добавления в пределах .bind части выше с комментариями). Но похоже, что хотя дерево загружено (подтверждено поле предупреждения, показывающее количество элементов), плагин cookie, похоже, не был запущен, поэтому заявление, которое я выполняю, по-прежнему бесполезно. Утверждение, которое я вставил сейчас, является тем, которое было предложено в одном из ответов, чтобы проверить, существует ли jstree-clicked элемент, и он все равно этого не делает. Итак, кто-нибудь знает, как я могу заставить это вызвать после того, как cookie установил класс jstree-clicked?
, пожалуйста, сообщите нам свой html-код, содержащий задействованные элементы. – jigfox
+1, пожалуйста, код –
Код, который у вас работает, отлично подходит для меня, проблема должна быть в другом месте. http://jsfiddle.net/e66kQ/ –