2016-12-03 7 views
1

をクリックし、変数idのリンクをjQueryの関数を呼び出しますか?私は、コードの下に書かれたが、その作業をされていない機能していない:私はHTMLを以下ましたHi

<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は、データ次投入されています。$( "#1 DSR-データ")

<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> 

HTML(dsrData );を割り当てる。

クリックして画像を更新/削除すると警告が表示されません。

親切に私はこの問題を解決するのに役立ちます。 ありがとうございます。

答えて

0

ちょうどHTMLでonclick属性を使用していないあなたはjQueryの拡張プロパティを使用しているとして、あなたが適切にjQueryの使用を取ることができ、あなたはクラス共通でactionでクラスdeleteuploadを追加することができます。

あなたのHTMLは次のようにする必要があります:

<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メソッドを使用します。より良く理解するために以下のコードを参照してください。

あなたはこのようにそれを行うことができます。

$(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')) { 
 
\t $(this).uploadStatus(); 
 
    } else { 
 
     $(this).deleteStatus(); 
 
    } 
 
    }); 
 

 
});
<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

こんにちは、ありがとうございます。コードは独立して動作しています。しかし、私のコードでクラブに入れたとき。それは動作していません。私のテーブル行はサーバ側で動的に作成され、$( "#dsr-data").html(dsrData)を使って行を表示します。しかし、上記のコード行にコメントして、手動行を置くと、コードが正常に動作しています。親切に私は問題(おそらくDOMの問題)を解決するのに役立ちます。ありがとう – Shubh

+0

ええ、あなたのコードがうまくいかない理由がわかりました、私の答えを更新させてください –

+0

@ Shubh - この答えが正しいと役に立つなら、それを受け入れて、この回答を受け入れて、このような他の質問への回答を促します他の人が正しい答えをすばやく見つけるのに役立ちます。 –

0

代わりにこれを試すことができます。

<script> 
    function uploadStatus(id) { 
     alert('id =' + id); 
    } 

    function deleteStatus(id) { 
     alert('id =' + id); 
    } 
</script> 
関連する問題