我在这个网站上解决了许多问题和解决方案,但没有一个对我有用。
软件: 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;
});