0

我在这个网站上解决了许多问题和解决方案,但没有一个对我有用。

软件: jQuery v1.7.2 fancybox v2.0.6

我有一个隐藏的 div,里面有另一个,我使用 jQuery 插件 fileTree 显示一个文件管理器。单击浏览图标时,此功能 100% 有效。

我现在尝试在单击浏览图标时在fancybox 中显示文件管理器div。这只适用于第一次。on('click') 函数不会记录此后的任何点击。

但是,如果我删除了 fancybox 块中的“href:myID”行,它每次都有效。因此,fancybox href 函数中的某些内容正在杀死 on('click') 触发器。

我已将其追溯到 myID 的 DOM 声明,然后仅当单击的浏览图标位于同一父结构中时。

任何想法都会受到欢迎,因为我花了很多时间来找出错误。

HTML:

<div>
    <div>
        <input field where the value will go />
    </div>
    <div>
      <img class='browse' src='images/browse.gif' title='' alt=''/>
   </div>
   <div class='hidden'>
      <div id='FM_defaultAdminUploadRootDir' class='filemanager'></div>
   </div>
</div>

jQuery:

jQuery(document).ready(function() {
   jQuery.noConflict();

   var myID;
   var myRoot = '{$site_Root}';
   var myDir;

   jQuery('.browse').on('click', function(){

      myID = '#'+this.parentElement.parentElement.children[2].firstElementChild.id;

        jQuery(myID).fileTree({
           root: myRoot,
           script: '".PURPLE_WYSIWYG_SRC_ABS_PATH."jqueryFileTree/connectors/jqueryFileTree.php',
           folderEvent: 'click',
           multiFolder: false,
           expandEasing : 'easeOutExpo',
           collapseEasing : 'easeInExpo'
        },
        function(file) {
            //alert(file);
        },
        function(dire) {
            myDir = dire;
        }
      );

      jQuery.fancybox({
          href: myID,  // <----- REMOVE THIS AND IT WORKS
          title: 'Select the directory',
          helpers : {
              title: {
                  type: 'outside'
              },
              overlay : {
                 opacity: 0.7,
                 css : {
                     'background-color' : '#433'
                 }
              }
          }
    });
    return false;
});
4

0 回答 0