0

画像のクリックで番号をダイヤルしたいのですが、このために、そのような画像を含むdivタグを動的に作成しました。しかし、電話をかけるには毎回画像をダブルクリックする必要があります。最初のクリックでラップ関数が呼び出され、2番目のクリックでtelが呼び出されているために発生していると思います。最初のクリックで電話をかけたいのですが、これに代わる方法を提案してください。私のコードは次のとおりです。

for(var i=0;i<len;i++)
    {
        var maindiv=document.createElement("div");
        maindiv.setAttribute("id", "maintablediv");
        var table=document.createElement("table");
        table.setAttribute("class","numbertable" );
        table.setAttribute("border",0);
        table.setAttribute("cellSpacing","0");
        table.setAttribute("cellPadding","0");
        var rowCount = table.rows.length ;
        var row =table.insertRow(rowCount);
        row.id="row";
        var cell1 = row.insertCell(0);
        if(i==0)
        {
            cell1.setAttribute("id","cmdcentralno");
        }
        var cell2=row.insertCell(1);
        var p=document.createElement("p");
        p.innerHTML=desc[i];
        cell1.innerHTML=num[i];
        cell1.setAttribute("class","numbername");
        cell1.appendChild(document.createElement("br"));
        cell1.appendChild(p);
        cell2.setAttribute("class","phoneImg");
        var image=document.createElement("img");
        image.setAttribute("src", "images/Icon-Phone-Green.png");
        if(i==0)
        {
            cell2.setAttribute("id","cmdcentralimage");
        }
        image.setAttribute("id", "imgphn"+i);

        image.className="imgphn";

       // var number=num[i].substring(num[i].indexOf('>')+1,num[i].indexOf('>')+14);

      image.setAttribute("name", dialnum[i]);
        cell2.appendChild(image);
        image.setAttribute("align","centre");
        maindiv.appendChild(table);
        document.getElementById("numberMenu").appendChild(maindiv);
        image.onclick=function()
        {
            var cellnumber=$(this).attr("name");
            $(this).wrap("<a href =tel:"+cellnumber+"/>");
        }
    }
});
4

1 に答える 1

0

テストされていませんが、これで問題が解決するはずです...

    // move this outside of the click handler (and use `image` instead of `this`)
    image.wrap("<a href =tel:"+cellnumber+"/>");

    image.onclick=function()
    {
        var cellnumber=$(this).attr("name");
    }
于 2012-08-01T13:27:46.657 に答える