2014-10-22 97 views
0

我遇到按钮有问题。与同一类别的多个按钮上的jquery按钮事件

用php我设置按钮的名称,所以它不知道按钮的名称是什么。该按钮然而有一个类,但有多个按钮。当我点击其中一个按钮时,所有按钮都会触发它们的事件,因为它们都具有相同的类别。

有没有一种方法可以使得只有一个按钮触发事件? 这里是我的代码:

<button class="delad" name="<?php print $user; ?>">Delete this ad? </button> 

<script> 
$(document).ready(function() 
{ 
    count = 0; 
    if(count == 0) 
    $(".delad").click(function(e) 
    { 
     e.stopPropagation() 
     v1 =$(this).attr('name'); 
     sum = {'v1': v1}; 
     sum = JSON.stringify(sum); 

     $.ajax(
       { 
        url: 'del_ad.php', 
        data: 'json='+ sum, 
        success: function(data) 
        { 
         alert(data) 
        } 
       }); 
       count += 1; 

    }); 

}); 

</script> 
+0

你只想按一下按钮? – 2014-10-22 06:44:53

+0

你可以告诉你有多少次获得相同的按钮.. – 2014-10-22 06:55:18

+0

添加另一个类或id到你想用作事件触发器的按钮,如果你不能这样做另一个选项将是正确的按钮使用它的父母的选择器$('。btn-container> .delad')...另一方面,如果您使用名称来包含数据,您可以使用数据属性来代替数据用户,并使用$ (this).data('user') – javiercf 2014-10-22 07:23:21

回答

0

尝试以下操作:

<button id="dino" class="delad" name="<?php print $user; ?>">Delete this ad? </button> 
<script> 
$(document).ready(function() 
{ 
count = 0; 
if(count == 0) 
$("#dino").click(function(e) 
{ 
    e.stopPropagation() 
    v1 =$(this).attr('name'); 
    sum = {'v1': v1}; 
    sum = JSON.stringify(sum); 

    $.ajax(
      { 
       url: 'del_ad.php', 
       data: 'json='+ sum, 
       success: function(data) 
       { 
        alert(data) 
       } 
      }); 
      count += 1; 

}); 

});

+0

因为有多个按钮,所以我无法使用id =“dino” – Elterado 2014-10-22 10:06:24

0

您可以确定哪个按钮被点击使用“这个”,与“本”,你可以访问HTML对象的属性。

$(document).ready(function(){ 
    $("input[class='my_class']").click(function(){ //get all button with the class of 'myclass' 
     alert($(this).attr('name')); //'this' determines which button was clicked 
     //ajax call 
    }); 
}); 

请看这个例子:) http://jsfiddle.net/silkherb/o7qpehwg/2/

+0

使用此代码它会提醒我使用此类的所有按钮,所以是的,它会按照我的要求进行操作,但它会触发所有按钮的事件那个班。 – Elterado 2014-10-22 10:08:47

+0

嘿,男士,所以问题是,你想要任何按钮来获得'同班同学'按钮上的所有名字?或者我错了?我用一个新的'button3'创建了一个新的例子http://jsfiddle.net/silkherb/f855euvp/1/ – jowi 2014-10-22 10:49:32

0

我不知道这是否会是实用与否,但是这将取决于你有多少个按钮有。

正如你可以在下面的代码中看到的,你将测试看看哪个按钮被点击,然后应用函数approriate它。

我认为这将适用于你所提供的信息,即使我假设页面上的按钮位置适合某个功能,而不管它的名称如何。

$(".delad").on("click", function(){ 
    var btnName = $(this).attr("name"); 
    if($(btnName) == <?php echo $nameOfButton1;?>){ 

     //do something thats specific 
     //to the button with this name 

    }else if($(btnName) == <?php echo $nameOfButton2;?>){ 

     //do something thats specific 
     //to the button with this name 

    }else if($(btnName) == <?php echo $nameOfButton3;?>){ 

     //do something thats specific 
     //to the button with this name 
    } 
}); 

希望这有助于

+0

它会,如果我知道有多少按钮,但这是我的问题,它是动态的。 – Elterado 2014-10-22 10:04:46

0

嗯,这发生在我身上,问题是剧本多次调用(在一个循环中)!

只是为了防止有人遇到同样的问题。