JqG​​rid:尝试在“添加”表单字段的右侧添加一个+按钮(使用elmsuffix)

时间:2010-10-18 18:03:52

标签: javascript jquery-ui jqgrid scope

我可以显示图标,如果我将javascript行放在href中但是我无法将对话框对象附加到链接ID,它会触发一个简单的警告。

我正在使用“elmsuffix”获取html:

这有效:

{name:'name',index:'name',width:100,  editable: true,  formoptions:{elmsuffix: "<a id="companysearch" href="javascript:alert('yay it worked!');" ><span id="companysearchicon" class="ui-icon ui-icon-plus" style="position:absolute; top:2px; right:25px; "></span></a>"}},

这不是:

$("#companysearch").click(function(){ alert('yay it worked!'); });

{name:'name',index:'name',width:100,  editable: true,  formoptions:{elmsuffix: "<a id="companysearch" href="javascript:void(0)" ><span id="companysearchicon" class="ui-icon ui-icon-plus" style="position:absolute; top:2px; right:25px; "></span></a>"}},

它几乎就像范围阻止了对象相互协作(或者我只是简单地接近它)

由于

Andrew Finegan

1 个答案:

答案 0 :(得分:0)

首先,我假设您使用elmsuffix: '<a id="companysearch" ...'而不是elmsuffix: "<a id="companysearch" ..."来使用正确的语法而不转义每个"个字符。

您使用$("#companysearch").click(...)时<问题> 时出现问题。目前,id =“companysearch”的元素必须已存在于页面的DOM中。所以你应该在beforeShowForm事件处理程序内部使用:

$("#list").jqGrid('navGrid','#pager',{},
    { // edit options
      beforeShowForm: function(form) {
          $("#companysearch").click(function(){
              alert('yay it worked!');
          });
      }
    });

或使用jQuery.live方法:

$("#companysearch").live('click', function() {
    alert('yay it worked (live)!');
});

the small example中,您可以看到两种工作方式。