在事件上运行功能

时间:2012-03-12 16:15:13

标签: javascript jquery

我试图在单击下载按钮时运行此函数set_downloads($file[0]);,我不能将其添加到代码中,因为它将运行。我可以将它放在不同的页面上并执行某种onclick事件来加载它,但我不知道该怎么做。

    <script type="text/javascript">
        var x = 0;
        var r = 0;
        function countdown() {
            if (x > 1) {
                x--;
                document.getElementById("button").innerHTML = x;
                r = setTimeout("countdown()",0);
            }
            else {
                clearTimeout(r);
                document.getElementById("button").innerHTML = "Click to download (<?php echo $filesize;?>) ";
                document.getElementById("button").disabled = "";
                document.getElementById("button").onclick = function() {
                    document.getElementById("button").disabled = "disabled";

                    document.getElementById("button").innerHTML = "Your download is starting..";

                };

            }
        }
        setTimeout("countdown()",1000);
    </script>
</head>
<body>
<label>
    <font size="5"></font>
</label>
<a href="http://IP/uploads/<?php echo $fullfile; ?>" >

    <button class="btn large orange" id="button" disabled="disabled">Click to download (<?php echo $filesize;?>) </button>

</a>

2 个答案:

答案 0 :(得分:0)

$(document).ready(function(){
    var x = 0;
    var r = 0;
    function countdown() {
        if (x > 1) {
            x--;
            document.getElementById("button").innerHTML = x;
            r = setTimeout("countdown()",0);
        }
        else {
            clearTimeout(r);
            document.getElementById("button").innerHTML = "Click to download (<?php echo $filesize;?>) ";
            document.getElementById("button").disabled = "";
            document.getElementById("button").onclick = function() {
                document.getElementById("button").disabled = "disabled";

                document.getElementById("button").innerHTML = "Your download is starting..";

            };

        }
    }
    setTimeout("countdown()",1000);

     $('.btn').click(function(){
        set_downloads($file[0]);
     });
});

此事件处理程序是您要用于处理事件的处理程序。它使用一个回调函数,在单击按钮后调用该函数参数。

另一件事是,我不确定您的$ file [0]变量,或者定义了set_downloads函数的位置。你在哪里设置这些?

答案 1 :(得分:0)

如果我错了,请纠正我但你不能只使用$(document).ready(handler)确保在需要时加载DOM,然后按照你的建议使用onclick:

.click( [eventData], handler(eventObject) )

eventDataA将传递给事件处理程序的数据映射。

handler(eventObject)每次触发事件时执行的函数。

修改

$('#button').click(function(){
  set_downloads($file[0]);
});

不确定你是否真的需要在ready()中,但如果是这样,你只需将click()函数包含在这里:

$(document).ready( {

// Function for button goes here

});

修改#2

$(document).ready({ 
   $('.btn').click(
     {
       $.ajax({ url: 'script.php?argument=value&foo=bar' });
)};

));

您可以将您的php脚本放在一个单独的文件中,并使用ajax和url调用它:然后根据需要设置任何参数。我不会复制并粘贴我考虑的因为我是移动的,很难看到括号:/

你也可以看看这里,一个稍微不同的例子仍在使用Ajax和Jquery,但可能对你想要的应用程序稍微好一些:

Use Ajax to call PHP function for HTML button Onclick