0

そのうちの1つでボタンを押すと、ボタン付きのクラスのセットがあります。変更はすべてのクラスになります。しかし、私はそれがアクティブなdivにのみあることを望みます。

$thisを使用する必要があることはわかっています。しかし、私はそれを管理することができませんでした。何か案は ?

function close(){
      $('.close').click(function() {
        $.ajax({
            url: "php/functions.php",
            type: "POST",
            data: "php",
            success: function(html) {
               var note =  $(".note").html(html);
            }

        });

 return false;
});
}

phpファイルにはエコーが含まれています

<?php echo "Heloo" ?>

html

<div class="note">
<div class="close"></div>
</div>
<div class="note">
<div class="close"></div>
</div>
4

3 に答える 3

1

あなたが欲しいのはこれです-

$('.close').click(function() {
  var $this = $(this);
  $.ajax({
    url: "php/functions.php",
    type: "POST",
    data: "php",
    success: function(html) {
        $this.closest(".note").html(html);
        //or
        $this.parent().html(html);
        //or
        $this.parent().html(html);
    }
  });
});

ただし、これによりclosedivが上書きされます。あなたがあなたの近いdivを維持したいなら-

HTML:

<div class="notewrap">
  <div class="note"></div>
  <div class="close"></div>
</div>
<div class="notewrap">
  <div class="note"></div>
  <div class="close"></div>
</div>

Javascript(コールバックで提供されているオプションの1つのみを使用してください):

$('.close').click(function() {
  var $this = $(this);
  $.ajax({
    url: "php/functions.php",
    type: "POST",
    data: "php",
    success: function(html) {
        //Option 1 - will work even if you change the html structure a fair bit
        $this.parents(".notewrap").find(".note").html(html);
        //Option 2 - will only work if your structure remains very similar
        $this.siblings(".note").html(html);
        //Option 3
        $this.parent().find(".note").html(html);
    }
  });
});
于 2013-03-15T19:23:02.850 に答える
0
$('.close').click(function() {
     $(this).addClass("SOMETHING"); <--- like this
        $.ajax({
            url: "php/functions.php",
            type: "POST",
            data: "php",
            success: function(html) {
               var note =  $(".note").html(html);
            }

        });
于 2013-03-15T18:44:24.110 に答える
0

私があなたの質問を正しく理解しているなら、あなたはajaxsuccessコールバック内でクリックされたボタンを変更しようとしていますか?これはボタンを返さないため、コールバックでは機能しません(ウィンドウを返すと思います。確かではありません)。
ajax投稿の前に、ボタンへの参照を取得する必要があります。これを試して:

$('.close').click(function() {
    var self = $(this);
    $.ajax({
        url: "php/functions.php",
        type: "POST",
        data: "php",
        success: function(html) {
            //Now you can do whatever you want with 'self', which is the button that was clicked
            self.addClass('myclasstoadd');
            var note =  $(".note").html(html);
        }
    });
于 2013-03-15T18:45:47.783 に答える