1

我在 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 功能。

4

5 回答 5

3

改变:

$(document).ready(function {

$(document).ready(function () {
于 2013-04-11T04:38:45.333 回答
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/

于 2013-04-11T05:10:16.137 回答
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');
      });  
  });
于 2013-04-11T04:38:31.880 回答
0

onclick上一个<td>是有效的。

把你的alert作为函数的第一行,D()以确保它被正确调用。

使用 FireFox,安装 Web Developer 工具栏和 Firebug 插件。按 F12,单击控制台选项卡,然后单击<td>. 如果有任何错误,您将在控制台选项卡中看到它们。

于 2013-04-11T04:42:00.423 回答
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");
});
});
于 2013-04-11T04:42:28.020 回答