このサイトでいくつかの質問と解決策に取り組みましたが、どれもうまくいきません。
ソフトウェア: jQuery v1.7.2 fancybox v2.0.6
jQueryプラグインfileTreeを使用してファイルマネージャーを表示している隠しdivがあり、その中に別のdivがあります。これは、参照アイコンをクリックすると 100% 機能します。
参照アイコンをクリックすると、fancybox に filemanager div を表示しようとしています。これは初回のみ機能します。それ以降のクリックは on('click') 関数によって記録されません。
ただし、fancybox ブロックの「href: myID」という行を削除すると、いつでも機能します。ファンシーボックスの 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;
});