日期:2014-05-16  浏览次数:20392 次

textarea输入内容,点击旁边空白的地方,再点入文本框,内容不见了
<script type="text/javascript">
  (function ($) {
  $.fn.iClear = function (iSet) {
  /* 
  * Curval:表单默认值 
  * CurColor:默认颜色值 
  * Enter:绑定回车事件的元素 
  */
  var self = this;
  iSet = $.extend({ Curval: null, color: '#000', CurColor: '#ccc', Enter: null }, iSet || {});
   
  $(self).each(function () {
  //当设置默认值是为表单赋默认值 
  if (iSet.Curval != null) {
  $(self).val(iSet.Curval);
  }
  //表单focus,blur事件 
  $(this).css('color', iSet.CurColor).focus(function () {
  Curval = $(this).val('');
   
  $(this).css('color', iSet.color);
  $(this).val();
  if ($(this).val() == (iSet.Curval ? iSet.Curval : this.defaultValue)) {
  $(this).val('');
  }
  }).blur(function () {
  if ($(this).val() == '') {
  $(this).val(Curval).css('color', iSet.CurColor);
  }
  });
  $(".ra_1").click(function () {
  $('textarea').css("color", "#CCC");
  });

  });
  };
  })(jQuery);
  $(function () {
  $('textarea').iClear();
  }); 
</script>


<textarea name="txtContent" id="txtContent cols="80" rows="8" maxlength="150" style="display:block;"</textarea>

------解决方案--------------------
能力有限,真看不懂你的插件想实现什么功能!
如果你想再点击内容不为空,很简单,删除: Curval = $(this).val(''); 即可!
------解决方案--------------------
$(this).css('color', iSet.CurColor).focus(function () {
if(!this.isWrite) 
Curval = $(this).val('');
this.isWrite=true;
......
------解决方案--------------------
用一个变量作为标志(标志的意义是否需要清空文本框),达到触发条件时根据这个变量判断是否该清空文本框,并修改这个变量的值;
原理就是这样,具体你想达到什么效果,按这个思路写代码就可以了