动态更改标记属性ASP.NET后,Java脚本(JQuery)不起作用

时间:2012-03-05 10:13:49

标签: javascript jquery asp.net anchor rel

rel标签的anchor属性的值发生变化时,我遇到运行JS函数的问题,anchor看起来像这样:

<a id="ThemeImageLink1" runat="server" href="javascript:void(0)" class="preview"
rel="../Images/templateChooser/preview/preview1.jpg">

我正在改变代码隐藏的rel标签值:

HtmlAnchor imageLink = (HtmlAnchor)getControlId(counter, "ThemeImageLink");
imageLink.Attributes.Add("rel","../Images/templateChooser/preview/preview2.jpg");

getControlId使用FindControl()aspx页面重新获取控制权。

如果我在代码后面注释掉我改变rel属性值的地方,jQuery工作正常。然后jQuery脚本使用默认值rel

这是我调用函数的jQuery部分:

    $(document).ready(function () {
         imagePreview();
    });

功能实现:

this.imagePreview = function(){ 

        xOffset = 10;
        yOffset = 30;

    $("a.preview").hover(function(e){
        this.t = this.title;
        this.title = "";    
        var c = (this.t != "") ? "<br/>" + this.t : "";
        $("body").append("<p id='preview'><img src='"+ this.rel +"' alt='Image preview' />"+ c +"</p>");                                 
        $("#preview")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px")
            .fadeIn("fast");    
    },
    function(){
        this.title = this.t;    
        $("#preview").remove();
    }); 
    $("a.preview").mousemove(function(e){
        $("#preview")
            .css("top",(e.pageY - xOffset) + "px")
            .css("left",(e.pageX + yOffset) + "px");
    });         
};

我还有其他JavaScript函数正常工作,但这个给了我一些问题。 你认为我应该在PageLoad方法上调用JS吗?

1 个答案:

答案 0 :(得分:0)

不要了解更多关于asp.net的信息,但如果rel属性为动态添加,那么你必须使用直播活动。

喜欢$("a.preview").live('hover' , function(e){