我在MVC4中工作并使用表格,当我在表格的<td>
元素上设置onclick时,相关的功能无效。
这就是我的工作方式 -
<tr>
<td style="cursor:pointer" onclick="D();">
#= DisplayName #</td>
</tr>
jQuery函数 -
<script type="text/javascript">
$(document).ready(function D() {
$('td').click(function (event) { loadPartially(event, '@Url.Contact_PartialView_Main()?ContactID=@Model.ContactID') });
alert("aa");
});
</script>
如果这不起作用,我试着给它一个ID -
<tr>
<td style="cursor:pointer" id="Open">
#= DisplayName #</td>
</tr>
jQuery函数 -
<script type="text/javascript">
$(document).ready(function {
$('#Open').click(function (event) { loadPartially(event, '@Url.Contact_PartialView_Main()?ContactID=@Model.ContactID') });
alert("aa");
});
</script>
我试图在点击表格的这个元素时获得加载部分事件。
但不知怎的,它不起作用。我不确定我是否可以在表的<td>
元素上使用onclick函数。
答案 0 :(得分:3)
变化:
$(document).ready(function {
到
$(document).ready(function () {
答案 1 :(得分:2)
这里的问题是你将旧学校的方法与jquery方法混合在一起(顺便说一下,你也混合了语法,这根本不起作用)。
以下是如何在没有jquery的情况下完成对onclick事件的绑定:
<script type="text/javascript">
function D() {
alert('omg!');
}
</script>
...
<td onclick="D()">
</td>
现在,如果你想使用jquery方法,它将如下所示:
<script type="text/javascript">
$('#IdSelector').click(function() {
alert('omg!');
});
</script>
...
<td id="IdSelector">
</td>
使用jquery方法,你牺牲了一个简单的能力来立即识别td onclick期间会发生什么,以便分离javascript逻辑和表示层之间的关注点(html)
我更喜欢jQuery方法,因为它不必关心在执行内联javascript时需要注意的一些恼人的语法问题以及更易读的IMO。
修改强>
jquery方法演示 - http://jsfiddle.net/jSnAh/
答案 2 :(得分:1)
$(document).ready(function(){//You have missed paranthesis of function()
$('#Open').live('click',function(event) {
alert("aa");
loadPartially(event, '@Url.Contact_PartialView_Main()?ContactID=@Model.ContactID');
});
});
答案 3 :(得分:0)
onclick
上的 <td>
有效。
将alert
作为函数D()
的第一行,以确保正确调用它。
使用FireFox,安装Web Developer工具栏和Firebug插件。按F12,单击控制台选项卡,然后单击<td>
。如果有任何错误,您将在控制台选项卡中看到它们。
答案 4 :(得分:0)
Firstly give a id or class to your td
<tr>
<td style="cursor:pointer" id='PerformAction'>
#= DisplayName #</td>
</tr>
$(document).ready(function (){
$('#PerformAction').click(function (event) {
loadPartially(event, '@Url.Contact_PartialView_Main()?ContactID=@Model.ContactID')
alert("aa");
});
});