Javascript скрывает Jquery DatePicker? - PullRequest
       0

Javascript скрывает Jquery DatePicker?

0 голосов
/ 14 сентября 2011

У меня есть папка в стиле iOS на моем веб-сайте в формате javascript. внутри папки есть несколько HTML-форм (это означает, что вы можете увидеть форму только после того, как откроете папку). Кроме того, я пытаюсь реализовать jquery datepicker внутри папки, но он не работает, вероятно, из-за кода JavaScript, который скрывает содержимое папки при загрузке страницы. Я не очень хорошо разбираюсь в javascript, поэтому я был бы очень признателен, если бы кто-то указал мне, как изменить код для средства выбора даты.

вот код iOS-подобной папки js:

$(function() {
$(".folderContent").hide();

//arrange the background image starting position for all the rows.
//This will allow the background image cut illusion when showing the folder content panel
$(".row").each(function() {

});

//when a folder is clicked,
//position the content folder after the clicked row
//and toggle all folder / app icon that is not the one clicked.
//and toggle the folder content panel
$(".folder").click(function(event) {

    var folderContent = $(".folderContent");
    folderContent.remove();

    var folderContentShown = folderContent.css("display") != "none";

    var clickedFolder = $(this);
    clickedFolder.parent(".row").after(folderContent);

    folderContent.find(".folderName").html( );

    $("body").find(".folder, .app").not(clickedFolder).each(function() {
        if (!folderContentShown) $(this).animate({
            opacity: 0.00
        }, "slow");
        else $(this).animate({
            opacity: 1.00
        }, "slow");
    });

    //clickedFolder.animate({opacity: folderContentShown ? 1.00 : 0.70}, "slow");
    folderContent.slideToggle("slow");
    event.preventDefault();
    });
    });

и вот код выбора даты

<script type="text/javascript">

$(function(){
$.datepicker.setDefaults(
$.extend($.datepicker.regional["ru"])
);
$("#datepicker").datepicker();
});
</script>

Если я удаляю js-код, похожий на iOS - средство выбора даты работает нормально, поэтому это определенно проблема с iOS-подобным кодом.

Заранее спасибо.

UPDATE:

последний файл, включенный в html (slide.js), - это код в верхней части поста. полный HTML-код:

<html>
<head>
<link href="slide.css" type="text/css" rel="stylesheet" />
<link type="text/css" href="css/ui-lightness/jquery-ui-1.8.16.custom.csss" rel="stylesheet" />
<script src="js/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
<script src="js/i18n/jquery-ui-i18n.js" type="text/javascript"></script>
<script type="text/javascript" src="slide.js"></script>
</head>
<body>
<table class='buttons_table'>

<tr><td>
<div class='row2'>
<div class='folder2'><span class='button gray medium'>xxxx</span></div>
</div>
</td></tr>

</table>

<div class='folder2Content'><span class='folder2Name'>

<form action='xxx.php' method='post'>
<table class='input_text'>
<tr>
<td>date : </td>
<td>
<script type="text/javascript">

$(function(){
$.datepicker.setDefaults(
$.extend($.datepicker.regional["ru"])
);
$("#datepicker").datepicker();
});
</script>
<input id="datepicker" type="text" name="year" />
</td>
</tr></div></span></table>

1 Ответ

0 голосов
/ 15 сентября 2011

Причина, по которой при скрытии области средство выбора даты больше не работает, заключается в том, что вы не только скрываете его, но фактически удаляете его из дерева DOM. даже если вы позже добавите его обратно, все прикрепленные события и данные будут потеряны в процессе. К счастью, в jQuery это возможно с помощью функции .detach(). Таким образом, вместо использования .remove() вы можете использовать .detach(), чтобы сохранить прикрепленные события и данные.

folderContent.detach();

Посмотри в действии: http://jsfiddle.net/william/qfXKb/21/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...