jQuery UI打破了锚点下载属性

时间:2014-03-08 05:21:55

标签: javascript html5 jquery-ui button anchor

[我的第一篇文章]

相关信息:

说明:

我正在使用jQuery UI,并且没有错误。我的所有按钮和样式元素都表现正常。在对链接进行jQuery UI修改期间,我发现html5功能已经崩溃。此链接当前下载由另一个函数生成的base64编码文件。我想要注意的是,在修改之前,文件下载完美。这是预修改工作代码。

JS

data = '<a download="out.yaml" href="data:text/yaml;base64, '+ encoded +'" > Yaml Output Download</a> ;

document.getElementById( "output").innerHTML = data ;

HTML

<div id="output">
</div>

当我修改为通过添加

将jQuery UI添加到锚点时
class="button" 

下载功能停止但样式已实现且chrome没有给出错误

破码:

JS

data = '<a class="button" download="out.yaml" href="data:text/yaml;base64, '+ encoded +'" > Yaml Output Download</a> ;

document.getElementById( "output").innerHTML = data ;

HTML

<div id="output">
</div>

我认为这是一个jQuery UI问题,但想知道是否有办法在保持原始下载功能的同时使用jQuery UI按钮。

修改

JS      data ='Yaml输出下载;

 //document.getElementById( "output" ).innerHTML = data ;
 $( '#output' ).html( data ) ;
 $( document ).ready( function() { reload() ; } ) ;

ONLOAD

function reload() {
    $( "input[type=submit], a.button, button" )
        .button()
        .click(function( event ) {
            event.preventDefault();
        });
} ;

$(function() {
    reload() ;
});

SOLOUTION

因为我认为正在正确执行重新加载功能所以我没有回头看看重装函数,因为jQueryUI没有抛出错误或没有运行。所有需要做的就是注释掉event.preventDefault();顾名思义,它可以防止触发默认操作,在这种情况下是文件的下载。

ONLOAD

   function reload() {
        $( "input[type=submit], a.button, button" )
            .button()
            .click(function( event ) {
                //event.preventDefault();
            });
    } ;

1 个答案:

答案 0 :(得分:0)

javascript片段(document.getElementById)是否可能需要 在jQuery document.ready回调中运行?不管是否 这是问题,我建议从内部执行你的javascript document.ready回调,而不是让javascript运行 在页面加载时。