javascript - 通过 .cshtml 文件中的 HTML 传递参数

标签 javascript jquery

我在 .cshtml 文件中有此代码:

var peopleList = $('#PeopleListTable').dataTable({
                    // not relevant
                    "fnRender": function (oObj) {
                        var documentiddata = oObj.aData[0];
                        var notesdata = (oObj.aData[2]);
                        //alert(notesdata);

                        if (notesdata != null) {
                            var image = "images/AR/Check-on.png";                                                         
                            // return '<a href="#"  id="' + notesdata + '" onclick="return ShowNotes(this);">' + '<img  src="' + image + '" />' + '</a>';
                            return '<p><a onmouseout="return hideNotePopup();" onmouseover="return showNotePopup(notesdata, event);" href="javascript:void(0);" id="' + documentiddata + '">' + '<img  src="' + image + '" />' + '</a></p>'
                        } else {
                            return '<a href="#" id="' + documentiddata + '"> ' + '<img src="images/AR/Check-off.png" />' + '</a>';
                        }                         
                    }
                    },
                { "sName": "OfficerName", sType: "string", sWidth: "12%" },
                 { "sName": "CreateDate", sType: "string", sWidth: "15%" },
                 { "sName": "FinalizedDate", sType: "string", sWidth: "15%" },
                 { "sName": "TransferDate", sType: "string", sWidth: "15%" },
                 { "sName": "AgencyOri", sType: "string", sWidth: "10%" }
            ]
        });

然后这段 JavaScript 代码:

function showNotePopup(notesdata, e) {
        $("#NoteDialog").dialog('close');
        $("#NoteDialog").removeClass("ui-icon ui-icon-closethick");
        $("#NoteDialog").dialog({
            autoOpen: false,
            modal: true,
            resizable: false,
            position: [e.pageX, e.pageY-190]
        });
        $("#NoteDialog").dialog('open');
        document.getElementById("note").innerHTML = notesdata;
    }

此代码的目标是将鼠标悬停在数据表中的注释图像上,然后弹出一个显示注释内容的窗口。在我有 alert(notesdata) 的地方,注释会正确显示。但是,当我将鼠标悬停在图像上并检查控制台时,它显示 notesdata 未在 showNotePopup() 调用中定义。我也尝试传递 thisoObj ,但没有成功。如何从 cshtml 内部获取 notesdata 到 javascript 函数?

最佳答案

变量notesdata仅存在于函数fnRender的上下文中。事件 onmouseover 在不同的上下文中执行,因此该变量超出了范围。你需要改变

onmouseover="return showNotePopup(notesdata, event);"

onmouseover="return showNotePopup(&quot;' + notesdata + '&quot;, event);"

关于javascript - 通过 .cshtml 文件中的 HTML 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22872784/

相关文章:

javascript - 嵌套对象解构

javascript - 我想用 bxslider 插件创建全屏淡入淡出幻灯片

javascript - 'this' 标签内 'body' 的奇怪行为

javascript - 如何将图像准确放置在菜单位置

javascript - jquery:在 .find() 之后保留 &lt;script&gt; 标签

jquery - 当我隐藏一些 div 元素,并在它们的位置淡入其他 div 元素时,淡入的 div 显示为 "jump"?

javascript - 将 <li> 元素附加到 <ul> 并为每个元素添加点击事件?

javascript - 如何使用旧版免费 JavaScript 将标记(不仅仅是纯文本)复制到剪贴板

javascript - 检查 div 内是否有两个选中的复选框

javascript - jQuery Live() 不起作用