当wmode = transparent时,使Uploadify在jquery手风琴标题中工作

时间:2010-09-29 16:54:28

标签: jquery flash click accordion uploadify

我有一个jquery手风琴,我想在accordion标题中插入uploadify。 把它放在那里工作正常,但是当我将uploadify swf wmode设置为透明时,它不能很好地工作:

-in Chrome点击上传swf没有任何内容 -in Firefox确实打开上传窗口,但也关闭/打开手风琴
- 在Internet Explorer中,它可以正常工作

如果我将wmode设置为窗口它可以正常工作,但我必须使用透明模式。

任何想法?
阿拉德。

编辑: 另一种解决方案是使用javascript调用uploadify swf click?是否可能?

Edit2:代码 -

相关HTML:

<div id="accordion">
    <div class="category" id="category$category_id">

        <h3 class="ui-accordion-header">
            <div class="header-div">
                    <div id="categoryTitle$category_id" class="categoryTitle">$category_name</div>
            </div>

            <div class="rightPart">
                <input id="fileInput$category_id" class="fileInput" name="fileInput" type="file" />
            </div>
        </h3>

        <div style="overflow: auto; height: 400px; text-align: left; padding: 10px">
            (pictures are here...)
        </div>
    </div>

    <div class="category" id="category$categor... (more categories)
</div>

相关的javascript:

var stop = false;
$('#accordion h3').click(function(event) {
    if (stop) {
        event.stopImmediatePropagation();
        event.preventDefault();
        stop = false;
    }
});
$('#accordion').accordion({
    header: "> div > h3",
    collapsible: true
}).sortable({
    axis: "y",
    handle: "h3",
    stop: function(event, ui) {
        stop = true;
    },
    update: function(event, ui) {
        var categoriesArray = $(event.target).sortable('toArray');
        updateCategoriesOrder(categoriesArray);
    }
})

$('.fileInput').livequery(function(){
    var myID = $(this).attr('id'); // grab id of the clicked fileInput button (e.g. 'fileInput45')
    myID  = myID.replace('fileInput',''); // strip down to the numeric value

    $(this).uploadify({
        'uploader'  : 'uploader/uploadify.swf',
        'script'    : 'uploader/uploadify.php',
        'cancelImg' : 'uploader/cancel.png',
        'multi'     : true,
        'auto'      : true,
        'folder'    : '/uploads',
        'width'     : 24,
        'height'    : 24,
        'wmode'     : 'transparent',
        //'wmode'       : 'window',
        'fileDesc'  : 'Images (*.jpg;*.jpeg;*.jpe;*.png;*.gif;*.bmp)',
        'fileExt'   : '*.jpg;*.jpeg;*.jpe;*.png;*.gif;*.bmp;',
        'queueID'   : 'uploadQueue',// + myID,
        onComplete  : function(event, queueID, fileObj, reposnse, data) {
                //alert(myID);
           }
    });
});

1 个答案:

答案 0 :(得分:1)

好的问题解决了。 似乎不是手风琴或wmode的错,这是jquery的可分类。

我的手风琴也是可排序的,当尝试按uploadify swf时,可排序的方法接管了。可以在此主题中找到解决方案: http://www.uploadify.com/forum/viewtopic.php?f=7&t=1556

他所做的是用div包装swf,然后使用sortable的'cancel'选项来阻止div的类被拖动({cancel:“。。uploadSwfDiv”})。

在Firefox中点击swf也会打开/关闭手风琴,所以为了防止我添加了这段代码:

$('.uploadSwfDiv').click(function(event) {
        event.stopPropagation();
    }
);