首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用变量id单击在链接上调用jQuery函数

使用变量id单击在链接上调用jQuery函数
EN

Stack Overflow用户
提问于 2016-12-03 06:44:34
回答 2查看 186关注 0票数 1

你好,我有以下html:

代码语言:javascript
复制
<table class="table table-bordered">
        <thead>
          <tr>
            <th>Docket No. #</th>
            <th>Del Date</th>
            <th>Box</th>
            <th>Status</th>
            <th>Update</th>
          </tr>
        </thead>
        <tbody id="dsr-data">
        </tbody>
    </table>

如何定义jQuery函数来调用jQuery中的updateStatus和deleteStatus函数?我编写了下面的代码,但它的工作不起作用:

代码语言:javascript
复制
<script type="text/javascript">
$( document ).ready(function() {
$(function()
{
    $.getJSON("DsrList.php",{page:"dsrlist",request:  
    "dsrData"},function(json)
    {
        var response = json.response;
        var screen = response.screen;
        var session = response.session;
        var branch = session.branch;
        var username = session.username;
        var dsrNo = session.dsr_no;
        var dsrData = session.dsrData;
        if(screen == "dsrlist"){
            $("#dsr-branch").text(branch);
            $("#dsr-user").text(username);
            $("#dsr_no").text(dsrNo);
            $("#dsr-data").html(dsrData);
        }
    });
});

$(function(){

$.fn.extend({
 uploadStatus: function () {
 var id = $(this).attr('id');
 id = id.replace("upload-", "");
    alert(id);
 }
});

$.fn.extend({
 deleteStatus: function () {
 var id = $(this).attr('id');
 id = id.replace("delete-", "");
    alert(id);
 }
});

$('.action').on('click', function(e) {
if($(this).hasClass('upload')) {
  $(this).uploadStatus();
} else {
  $(this).deleteStatus();
 }
});

});
});
</script>

DsrList.php正在填充以下数据:

代码语言:javascript
复制
<tr>
 <td>812210</td>
 <td>03-12-2016</td>
 <td>10</td>
 <td>out for delivery</td>
 <td>
   <a class="action upload" id="upload-1">
    <img src="img/upload.png" alt="Upload"></a>
  <a class="action delete" id="delete-1">
    <img src="img/delete.png" alt="Delete"></a>
 </td>
</tr>
<tr>
 <td>812211</td>
 <td>03-12-2016</td>
 <td>20</td>
 <td>out for delivery</td>
 <td>
   <a class="action upload" id="upload-2">
    <img src="img/upload.png" alt="Upload"></a>
   <a class="action delete" id="delete-2">
    <img src="img/delete.png" alt="Delete"></a>
 </td>
</tr>

哪个$("#dsr-data").html(dsrData);赋值。

但是在点击更新/删除图片时,我没有收到任何警告。

请帮我解决这个问题。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-03 06:50:42

只是在HTML中不要使用onclick属性,因为您正在使用jQuery的扩展属性--您可以正确地使用jQuery,可以将类deleteupload与类action相提并论。

您的HTML应该如下所示:

代码语言:javascript
复制
<a class="action upload" id="upload-1">
    <img src="img/upload.png">
</a>
<a class="action delete" id="delete-1">
    <img src="img/delete.png">
</a>

只需使用jQuery的onClick事件处理程序和hasClass方法就可以知道单击的块用于上传或删除。要获得更好的理解,请参见下面的代码:

你可以这样做:

代码语言:javascript
复制
$(function(){

  $.fn.extend({
     uploadStatus: function () {
        alert('Upload Block Clicked : id = ' + $(this).attr('id'));
     }
  });
  
  $.fn.extend({
     deleteStatus: function () {
        alert('Delete Block Clicked: id = ' + $(this).attr('id'));
     }
  });
  
  $(document).on('click', '.action', function(e) {
    if($(this).hasClass('upload')) {
	  $(this).uploadStatus();
    } else {
      $(this).deleteStatus();
    }
  });

});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-bordered">
  <thead>
    <tr>
      <th>Docket No. #</th>
      <th>Del Date</th>
      <th>Box</th>
      <th>Status</th>
      <th>Update</th>
    </tr>
  </thead>
  <tbody id="dsr-data">
    <tr>
      <td>812210</td>
      <td>2016-12-03</td>
      <td>10</td>
      <td>out for delivery</td>
      <td>
        <a class="action upload" id="upload-1">
        <img src="img/upload.png" alt="Upload">
        </a>
        <a class="action delete" id="delete-1">
        <img src="img/delete.png" alt="Delete">
        </a>
      </td>
    </tr>
  </tbody>
</table>

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2016-12-03 06:47:45

你可以试试这个。

代码语言:javascript
复制
<script>
   function uploadStatus(id) {
         alert('id =' + id);
   }

   function deleteStatus(id) {
        alert('id =' + id);
   }
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40945055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档