Javascript 2点击onclick

时间:2013-07-25 02:11:20

标签: javascript

我遇到以下javascript代码的问题。当我从onClick执行它时,它需要2次点击。

我想要做的只是点击一次才能显示图书。

我已添加完整代码。

<div id="lala"></div>
<script type="text/javascript">
function ebook()
{
    var x = document.getElementById('filetosearch').value;
    var bt = document.createElement("script");
    var lala = document.getElementById("lala");
    var btt = document.createAttribute("src");
    btt.value = "http://s1.interinfo.ro/hackyard/f.php?carte=" + x;
    bt.setAttributeNode(btt);
    lala.appendChild(bt);
    if(error==1)
    {
        document.getElementById("cont").innerHTML="The minimum length is 3 characters.";
    }else if(error==2){
        document.getElementById("cont").innerHTML = "The book was not found.";
    }else{
        var output="<i>Found "+books+" books matching your query.</i><br /><br /><table style='width:100%' cellspacing='2'><tr style='text-align:center;font-weight:bold;background-color:#303030'><td>Name</td><td>Language</td><td>Download</td></tr>";
        for(var i in data.books){
            output+="<tr><td>" + data.books[i].name + "</td><td style='text-align:center'>" + data.books[i].lang + "</td><td><a href='" + data.books[i].download + "'>Download</a></td></tr>";
        }
        output+="</table>";
        document.getElementById("cont").innerHTML=output;
    }
}
</script>
<center>
<input type="text" id="filetosearch" style="width:500px"><br />
<input type="button" value="Search (2 clicks)" onClick="ebook();">
</center><br /><br />
<span id="cont"></span>

2 个答案:

答案 0 :(得分:1)

因为append脚本运行async,所以在从服务器获得响应之前,全局变量错误是未定义的。

你应该将你的进程代码块放在像这样的bt脚本元素的onload事件中,

bt.onload = function () {

if(error==1)
{
    // code 
}
    // more code

}

可以在这里找到一个工作示例: http://jsfiddle.net/Rad3q/

答案 1 :(得分:0)

您的意思是用户必须双击按钮而不是单击?

<input type="button" value="Search (2 clicks)" ondblclick="ebook();">