Javascript onmouseover事件未为表单元格触发

Javascript onmouseover事件未为表单元格触发,javascript,jquery,Javascript,Jquery,我对表格单元格的onmouseevent有问题。 我所做的是在jquery的帮助下删除和创建html表格单元。页面加载时,此事件将完全正常触发。但在相同位置移除和插入表单元格后,不会触发onmouseover事件。下面是我所做的代码 var ModularAdHolderCell = ''; var MergedCellValues = new Array(); $('#our_table tr').each(function (i, el) { for (var cellCnt = 0;

我对表格单元格的onmouseevent有问题。 我所做的是在jquery的帮助下删除和创建html表格单元。页面加载时,此事件将完全正常触发。但在相同位置移除和插入表单元格后,不会触发onmouseover事件。下面是我所做的代码

var ModularAdHolderCell = '';
var MergedCellValues = new Array();
$('#our_table tr').each(function (i, el) {
  for (var cellCnt = 0; cellCnt < this.cells.length; cellCnt++) {
    if ($(this.cells[cellCnt]).attr('class') == 'highlighted' || $(this.cells[cellCnt]).attr('class') == 'OrangeBackground highlighted') {
            var id = $(this.cells[cellCnt]).attr('id');
            ModularAdHolderCell = id;
            id = 'hdn_' + id;
            var MergedCells = $(this.cells[cellCnt]).find('input:hidden').val();
            if (MergedCells != '')
                MergedCellValues = MergedCells.trim().split('=');
        }
    }
});

var row = document.all.our_table.rows[0];
var TotalCellInRow = row.cells.length;
var Cell = row.insertCell(TotalCellInRow);
var element1 = document.createElement("input");
element1.type = "hidden";
element1.id = "hdn_" + MergedCellValues[cnt];

row.cells(TotalCellInRow).setAttribute('onmouseover', 'MOuseOver(this)');
row.cells(TotalCellInRow).setAttribute('onmouseout', 'MouseOut()');
row.cells(TotalCellInRow).setAttribute('onmousemove', 'MOuseOver(this)');
row.cells(TotalCellInRow).setAttribute('onmouseenter', 'MOuseOver(this)');

row.cells(TotalCellInRow).setAttribute('unitheight', Unitwidth);
row.cells(TotalCellInRow).setAttribute('unitwidth', UnitHeight);
row.cells(TotalCellInRow).setAttribute('id', MergedCellValues[cnt]);

row.cells(TotalCellInRow).setAttribute('width', Unitwidth);
row.cells(TotalCellInRow).setAttribute('height', UnitHeight);
row.cells(TotalCellInRow).appendChild(element1);

$(row).find('#' + MergedCellValues[cnt] + '').attr('onmouseover', 'MOuseOver(this)');
$(row).find('#' + MergedCellValues[cnt] + '').attr('onmouseout', 'MouseOut()');
$(row).find('#' + MergedCellValues[cnt] + '').attr('onmousemove', 'MOuseOver(this)');
$(row).find('#' + MergedCellValues[cnt] + '').attr('onmouseenter', 'MOuseOver(this)');
var ModularAdHolderCell='';
var MergedCellValues=新数组();
$('#我们的_表tr')。每个(函数(i,el){
对于(var cellCnt=0;cellCnt
这里MergedCellValues是单元格id的数组,上面的代码位于单元格的循环中


有人能告诉我为什么它不能为手机触发onmouseover事件吗

设置属性并不是附加事件处理程序的理想方式,在这里,您可以大大简化和加快事情,删除所有
.setAttribute('onmouseover','MOuseOver(this)')逻辑…全部8行,然后只需将一组处理程序附加到
即可处理所有这些:

$("#our_table")
   .delegate("td", "mouseover mousemove mouseenter", MOuseOver)
   .delegate("td", "mouseout", MouseOut);
然后在
MOuseOver
MouseOut
函数中,只需使用
this
引用单元格即可


这会将处理程序附加到
元素,以侦听其他冒泡的鼠标事件…无需为每个单元格绑定它们,这样成本低得多,并且可以同时处理当前和新的单元格。

@Ronak;对于这样的问题,指定您正在测试的浏览器几乎总是至关重要的;它可能会提供一些线索来说明发生了什么。你的
MOuseOver
函数是什么样子的?@BeemerGuy:我在用IE8。奇怪的是,它在safari中工作正常。@Ronak有些东西在IE中不工作,但在webkit浏览器中工作正常并不奇怪。IE是web开发世界的红发继子,它从来都不喜欢玩得很好。@Nick Craver:我有一张图片,上面有关于它放在表格单元格上时应该占用的行和单元格的信息。所以当图像被删除时,我得到这个信息,并根据这个信息合并表格单元格。MOuseOver包含此逻辑。@Ronak-我更新了它,因为您使用的是jQuery 1.4.2,1.4.3+语法对您不起作用……但上面的代码应该可以工作,请确保在函数中使用
this
,而不是现在传入的参数。