1

del1、del2、del3 などで定義されたアイテムがたくさんあります。

.click を .del1 delete(1) および .del2 delete(2) に設定するにはどうすればよいですか?

<li>
    <a href="http://www." target="new">http://www.</a>
    <a href="#">
        <img class="del1" src="images/page_white_delete.png" title="Delete">
    </a>
</li>
<li>
    <a href="http://www." target="new">http://www.</a>
    <a href="#">
        <img class="del2" src="images/page_white_delete.png" title="Delete">
    </a>
</li>

jQuery:

$(".del1").click(function(){
   favs.webdb.deleteTodo(1);
});

古いコードは次のように書かれていました。

    <li><a href="http://www.tes.com" target="new">http://www.tes.com</a>
<a href="javascript:void(0);" onclick="favs.webdb.deleteTodo(1);">
<img src="images/page_white_delete.png" title="Delete">
</a></li>

また、ページの読み込みが完了するまでwebdbが読み込まれないため、jquery live clickを実行する必要があると思います。

4

3 に答える 3

6

ジェネリック クラスとdata-*属性を使用します。

<img class="del" data-number="1" src="images/page_white_delete.png" title="Delete">
<img class="del" data-number="2" src="images/page_white_delete.png" title="Delete">


$(".del").click(function(){
    favs.webdb.deleteTodo($(this).data("number"));
});
于 2012-08-14T03:34:32.883 に答える
5

HTML を変更できない場合は、class名前から番号を抽出できます。

$('img[class^="del"]').click(function() {
  var class = $(this).attr('class');
  var number = parseInt(class.slice(3), 10);

  favs.webdb.deleteTodo(number);
});
于 2012-08-14T03:30:27.560 に答える
3

次のような特別な属性を設定することをお勧めします。

<img class="del" data-node-id="1" src="images/page_white_delete.png" title="Delete">

それから:

 $('img.del').click(function(){ 
      favs.webdb.deleteTodo( $(this).data('node-id') ); 
 })
于 2012-08-14T03:37:55.967 に答える