2013-03-15 81 views
0

當我按下其中一個按鈕時,我有一組按鈕。變化成爲所有的類。但我希望它只在活躍的div上。只更改活動div而不是所有具有相同名稱的類

我知道我應該使用$這個。但我無法管理它。有任何想法嗎 ?

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

請提供一個小提琴 – honk31 2013-03-15 18:41:44

回答

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

然而,這將覆蓋你的親密股利。如果你想保持你的親密格 -

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(僅使用在回調所提供的選項之一):

$('.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); 
    } 
    }); 
}); 
+0

謝謝!這是一個很好的解決方案,其實我想要做的事情是刪除整個可以嗎? – Dymond 2013-03-15 19:34:27

+1

讓你的回調$ this.parent()。remove(); – iabw 2013-03-15 19:42:52

+0

非常感謝你:) – Dymond 2013-03-15 19:48:34

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

     }); 
+0

大家好!我仍然遇到同樣的問題。 – Dymond 2013-03-15 18:58:38

0

如果我正確理解你的問題,你想只是改變了按鈕那是在ajax success回調內點擊的?這在回調中不起作用,因爲它不會返回按鈕(它會返回窗口,我認爲,不確定)。
你必須在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); 
     } 
    }); 
+0

。試試這個:) brb – Dymond 2013-03-15 18:51:41

+0

我試過了,但是在div上不但獲得了相同的結果,而且獲得了相同的結果:( – Dymond 2013-03-15 18:58:08

+0

你能用html提供[jsFiddle](http://jsfiddle.net/)嗎? – Marcus 2013-03-15 19:04:49

相關問題