如何在jQuery中添加和删除事件?

时间:2013-02-08 01:40:48

标签: jquery

我的图像在.cs文件中定义了“a href”标签的InnerHTML,如下所示。

HtmlGenericControl _divToolTipContainer = new HtmlGenericControl("div");
_divToolTipContainer.InnerHtml = "<a href=\"javascript:__doPostBack('" + btnItemThumbnail.ClientID.Replace("_", "$") + "','')\">" +
                              <img src='" + string.Format("ItemPreview.axd/{0}/width-250/height-328/", item.ID.ToString()) + "'></a>;

现在我想要的是让这个“a href”事件“删除”说如果条件是(假)否则通过使用jQuery再次“添加”事件。示例代码如下所示。

var objectDiv = document.getElementById(oElementId);    // get the object id 

If (false){ // condition here
    remove the event of the a href tag..
    jquery code must be added here..
}else{
    add the event again of the a href tag..
    jQuery code must be added here..
}   

怎么做?

由于

杰森

2 个答案:

答案 0 :(得分:1)

您也可以使用jQuery按ID选择元素,所以

(function($) {

    var objectDiv = $("#"+oElementId);    // get the object id 

    if(false)
    { // condition here
        objectDiv.removeAttr("href"); 
    }
    else
    {
         objectDiv.attr("href", "javascript:__doPostBack('" + btnItemThumbnail.ClientID.Replace("_", "$") + "','')");
    } 

})(jQuery);

编辑:您可能必须将代码包装在(函数($)中以确保您的代码使用$ for jQuery

答案 1 :(得分:1)

if (false) {
    $('#oElementId').off('click', function() {});
} else {
    $('#oElementId').on('click', function() {});
}