如何从bootbox中的通配符id中触发事件?

时间:2014-12-21 03:10:50

标签: javascript jquery jqgrid

我正在使用JQgrid来显示数据表。当我单击表格中的一行图标时,它会正确显示一个包含新表格的引导框。我希望行中有可以点击的id,通过onclick触发另一个函数。我只是试图获得一个警报测试,但它似乎没有像我超出范围?是否有可能从jqgrid内部的bootbox内容中获取onclick事件?引导框工作正常,但我无法通过单击引导框表中的ID来触发onclick事件。

grid.jqGrid({

...

onCellSelect: function (rowid, iCol, cellcontent, e) {
// if column 8 is clicked...
if(iCol==8){

  $('[id^=price-]').click(function(){
    alert('click');
  });

  bootbox.dialog({
    title: 'Popup Title',
    message: '<table><tr><td><span class="label label-lg label-info arrowed" id="price-1234">Match Price</span></td></tr></table></div>',
  });
}
}

...

});

1 个答案:

答案 0 :(得分:2)

您可以使用jQuery on来侦听尚未在DOM中的元素的事件。

$(function(){
   //Handle click events from your selector
   $(document.body).on("click", "[id^=price-]", function(event)
   {
      //Do your logic here.
   });
});

通常,您希望确保将on处理程序放到最近的父级。但是在这种情况下,你无法控制bootbox放置html(它在正文中)的位置,所以你必须将一个处理程序附加到DOM的更高级别。