target事件属性

Posted vcr_玄子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了target事件属性相关的知识,希望对你有一定的参考价值。

获取下拉框值

1、此种方法无法在页面获取到下拉框值

<th field="CLTZDYMC" data-options="formatter: function(value,row,index){return row.CLTZDYMC}"
editor="{type:\'combobox\',
  options:{
      valueField:\'CLTZDYMC\',
      textField:\'CLTZDYMC\',
      url:\'common_getCltzdymcJson.action\',
      panelHeight:\'350\',
      onChange:function(newValue,oldVlue){
      var testTmp = $(this).parents(\'.datagrid-row-editing\');
      var parentDom = testTmp.parents(\'.datagrid-view\');
      var childDom1 = parentDom.children(\'div.datagrid-view2\');
      var childDom2 = childDom1.find(\'tr.datagrid-row-editing\');
      var tmpCltzdymc = testTmp.children(\'td[field=CLTZDYMC]\');
      var tmpFsclms = testTmp.children(\'td[field=FSCLMS]\');
        $.ajax({
          url:\'common_getFsclmsJson.action?newVal=\'+encodeURI(encodeURI(newValue)),
          async:true,
          method:\'post\',
          success:function(r){
            var jsonobj = eval(r);
            (childDom2.children(\'td[field=FSCLMS]\').find(\'div.datagrid-cell\')).html(jsonobj[0].FSMS);
          }
        });
      }
    }
}"
width="250" align="center" rowspan="2">
刺漏台账对应名称
</th>

2、最后通过target事件获取到了此下拉框值

function editInfo(index){
  editorRow=index;
  var row = $(\'#dg\').datagrid(\'getSelected\');//先获取到当前选中行
  var rindex = $(\'#dg\').datagrid(\'getRowIndex\', row);//根据当前行获取,当前行的下标
  $(\'#dg\').datagrid(\'cancelEdit\', rindex);
  $(\'#dg\').datagrid(\'selectRow\', index);
  $(\'#dg\').datagrid(\'updateRow\', {
    index: index,
    row: {
      CZ: ""
    }
  });
  $(\'#dg\').datagrid(\'beginEdit\', index);

  var ed = $(\'#dg\').datagrid(\'getEditor\', { index: index, field: \'FCLYS\' });
  $(ed.target).bind(\'change\', function () {
  var editor = $(\'#dg\').datagrid(\'getEditor\', {index:index,field:\'CLTZDYMC\'});
  var editor2 = $(\'#dg\').datagrid(\'getEditor\', {index:index,field:\'FCLYS\'});
  var cltzdymcVal = $(editor.target).combobox(\'getValue\');
  var fclysVal = $(editor2.target).val();
  if((cltzdymcVal!=null && ""!=cltzdymcVal) && (fclysVal!=null && ""!=fclysVal)){
     $(editor2.target).val(fclysVal+"<a href=\'#\' title=\'请确认刺漏台账对应名称与腐蚀刺漏因素是否有误!\' class=\'easyui-tooltip\'><img border=\'0\'                                                   src=\'${pageContext.request.contextPath}/gxgl/images/warning.jpg\'/></a>");
  }else{
    $(editor2.target).val(fclysVal);
  }
  });

}

=======target=======================================================================================================

target 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素、文档或窗口。

target需要通过形参event才能拿到对象,this则通过类名或者id就能拿到当前触发函数对象

 

event.target与this的区别:

  event.target表示发生点击事件的元素;

  this表示的注册点击事件的元素;

  this是所有函数原生具有的。进入函数事,this已经直接有了目标对象。

  而e.target通过e在寻找target,中转了一下。所以相比较而言,this的执行效率更高些。

<div><img src="……"></div>

<script>

  $(\'div\').click(function(){

    e.target表示事件触发元素这里会是img

    this 始终指向绑定事件的元素也就是div

  });

</script>

=======currentTarget================================================================================================

currentTarget 事件属性返回其监听器触发事件的节点,即当前处理该事件的元素、文档或窗口。

捕获起泡阶段,该属性是非常有用的,因为在这两个节点,它不同于 target 属性。

捕获、冒泡------->详解http://www.cnblogs.com/hh54188/archive/2012/04/09/2343357.html

 

以上是关于target事件属性的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript事件属性event.target和currentTarget 属性的区别。

target事件属性

event.target.可以获取啥属性

e.target与事件委托简例

Event对象中的target属性和currentTarget属性的区别

JavaScript事件属性event.target