`

jquery动态设置attr onclick的那些事

阅读更多
html 代码:
<s:if test="#romAdResult.whether_release>0">
  <a href="#" onclick="activateCountUpdate(this,2)" id="${id}">取消发布</a>
</s:if>
<s:else>
  <a href="#" onclick="activateCountUpdate(this,1)" id="${id}">发布</a>
</s:else>


业务要求:
1、页面加载时会根据whether_release的值,当为0时显示发布,大于0,即为1时,显示取消发布。
2、JS代码操作中当单击取消发布执行成功后,需把<a>标签的单击事件修改为发布的事件,并把文本修改为发布,而操作发布事件,刚好相反,这就需要Jquery动态修改onclick。

所遇问题:
1、直接设置:
$(this).attr("click",activateCountUpdate($(this),2));

   这样设置后,会出现直接执行事件

2、通过Jquery one 设置:
   $(this).one("click",function(){
      activateCountUpdate($(this),2)
   });

   设置后,当单击事件触发时,会同时执行activateCountUpdate($(this),1),以及activateCountUpdate($(this),2) 两个事件

最终解决方法:
  
   //先清除,再绑定
   $(this).attr('onclick','');  //此方法如不起作用,可使用“ $(this).unbind('click');”  代替
   $(this).one("click",function(){
      activateCountUpdate($(this),2)
   });
   



分享到:
评论
1 楼 chinaway 2012-12-16  
学习了,谢谢分享

相关推荐

    使用jQuery的attr方法来修改onclick值

    $("#anchor").attr('onclick', '').click(newclick); 如果onclick事件原先有值,要先清空,再用click( eval&#40;function(&#41;{…..}) )赋值 $("input[name='orderCar']").attr('onclick','').click( eval&#40;...

    jquery动态改变onclick属性导致失效的问题解决方法

    那么你可能在某些时候需要去修改onclick 的属性如下: 代码如下: $(“#id”).attr(“onclick”,url); 这样的代码,在chrome和firefox 中可以得到你想要的结果。 遗憾的是在ie中,至少是ie7 以下是没有效果的,至于...

    jQuery动态移除与增加onclick属性的方法详解

    本文实例讲述了jQuery动态移除与增加onclick属性的方法。分享给大家供大家参考,具体如下: 这里给大家介绍利用jquery的removeAttr与attr事件来给a标签增加与删除onclick事件的具体操作方法,有需要了解的朋友可参考...

    jquery的attr方法使用

    **jQuery的attr方法详解** 在JavaScript的世界里,jQuery库以其简洁的API和强大的功能深受开发者喜爱。其中,`attr`方法是jQuery中的一个重要成员,它主要用于获取或设置HTML元素的属性(attribute)。本文将深入...

    jquery attr方法获取input的checked属性问题

    问题:经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法获取其真实值,下面介绍这两种方法的区别: 1.通过prop方法获取checked属性,获取的checked返回值为boolean,...

    jquery checkbox无法用attr()二次勾选问题的解决方法

    然而,自jQuery 1.6开始,`attr()`方法对于DOM属性的处理有了区分,它主要用来获取或设置元素的特性(attribute),而不是属性(property)。 属性(property)和特性(attribute)在某些情况下是有区别的,特别是...

    IE8的JavaScript点击事件(onclick)不兼容的解决方法

    但是因为IE8不支持这种方式,所以改用jQuery的`attr`方法。由于直接设置`onclick`属性并未生效,最终的解决方法是创建一个函数,将事件处理函数的代码作为字符串赋值给函数,然后在该函数内部使用`eval`来执行这段...

    jquery应该如何来设置改变按钮input的onclick事件

    在这个问题中,开发者希望动态地改变一个ID为`prebt`的按钮的`onclick`事件,以便调用不同的`ToPage`函数。 首先,我们来分析一下给出的尝试和代码片段: 1. 使用`removeAttr`和`attr`方法: 这个方法试图移除`...

    jquery移除button的inline onclick事件(已测试及兼容浏览器)

    总结来说,处理button元素上的inline onclick事件时,推荐使用jQuery来动态绑定事件,以确保更好的兼容性和可维护性。如果在IE浏览器中遇到即时触发事件处理器的问题,应考虑使用setTimeout进行延迟绑定。这些技术的...

    TextBox Jquery日期控件

    接下来,我们需要在服务器端代码(如C#)中,使用`textBox.Attributes["onClick"] = "WdatePicker()"`这行代码来设置TextBox的点击事件。`Attributes`属性允许我们添加或修改HTML元素的任何属性,`onClick`是...

    Jquery框架

    例如,`$("#img").attr("src")`获取图片源,`$("#img").attr("src", "newImage.jpg")`设置图片源。 - **removeAttr()**: 删除属性,如`$("#img").removeAttr("id")`移除ID属性。 - **css()**: 获取、设置或修改CSS...

    Jquery.doc

    在jQuery中,`$(selector).attr("attrName")` 获取属性值,`$(selector).attr("attrName", "value")` 设置属性值。另外,`$(selector).val()` 用于获取或设置表单元素的值,`$(selector).html()` 获取或设置元素的...

    jQuery动态添加、删除元素的方法

    同时,为了便于删除,我们还为列表项内部增加了一个隐藏的输入框,并为删除按钮设置了onclick事件处理器。 2. jQuery动态删除元素: 删除元素则需要使用jQuery的其他方法,如.remove()或.replaceWith()。在本例中,...

    jquery相关知识点

    - 设置`onclick`属性: `$("a").attr("onclick","test();");` #### 五、`addClass`, `removeClass`, `toggleClass` 的使用 - `addClass(class)`: 为匹配元素添加指定的类。 - `removeClass(class)`: 从匹配元素中...

    jQuery笔记

    在原生JavaScript中,我们可以使用document.getElementById("btn").onclick来实现相同功能,但要注意,jQuery对象不能直接使用DOM对象的方法,如$("#btn").onclick是错误的。如果需要在jQuery对象上使用DOM方法,...

    JQuery综合练习2.docx

    在本篇关于jQuery的综合练习中,我们涵盖了多个核心知识点,包括jQuery对象的隐式迭代、DOM对象与jQuery对象的转换、以及`text()`、`attr()`和`val()`等方法的使用。以下是对这些概念的详细解释: 1. **jQuery对象...

    jQuery 使用手册.doc

    - `.attr()`:获取或设置元素的属性值,如修改链接的 href 或表单元素的 value。 jQuery 的强大之处在于它的简洁性和易用性。通过这些基础操作,开发者可以快速实现复杂的交互和动态效果,而无需深入理解底层的 ...

Global site tag (gtag.js) - Google Analytics