Javascript函数不能在动态创建的ImageButton (ASP.NET)上工作

本文关键字:ASP NET 工作 ImageButton 不能 函数 动态 创建 Javascript | 更新日期: 2023-09-27 18:04:33

有这样的东西:

    protected void Page_Init(object sender, EventArgs e)
    {
        LoadImageButtons();
    }
    private void LoadImageButtons()
    {
        for (int i = 1; i < 10; i++)
        {
            ImageButton myImageButton = new ImageButton();
            myImageButton .ID = i.ToString();
            myImageButton .CssClass = "buttonFieldClass";
            myImageButton .Click += new ImageClickEventHandler(einButton_Click);
            myImageButton .OnClientClick = "toRight(this.id);return false";
            div.Controls.Add(myImageButton);
        }
    }
Javascript (Jquery):

function toRight(id) {
$("#id").animate({ "left": "+=250px" }, "slow");};

和什么都没有发生(与静态控件它工作)..所以我认为这个ID出了问题。

Javascript函数不能在动态创建的ImageButton (ASP.NET)上工作

像这样修改你的jquery

function toRight(id) {
    $("#" + id).animate({
        "left": "+=250px"
    }, "slow");
};

字符串"#id"不是所需的选择器。
所需的选择器是"#"与变量"id"连接

在我看来你的问题是这一行

    myImageButton .OnClientClick = "toRight(this.id);return false";

尝试更改为:

    myImageButton .OnClientClick = "toRight('" + this.id + "');return false";

哦,建议的Javascript修复也是正确的和必需的!