2014-12-06 2 views
0

Я пытаюсь создать веб-страницу с двумя кнопками, выполняющими разные действия. Когда я нажимаю на одну кнопку, она выполняет обе функции, но я хочу, чтобы она выполняла только одну функцию.Объявление более одной кнопки в jQuery

ЗАДАЧА 3.1: 200x200 зеленый ящик ДИВ:

<button>Remove</button> 
<script> 
    $(document).ready(function(){ 
     $("button").click(function(){ 
      $("div").remove(); 
     }); 
    }); 
    <br/> 
</script> 

<button>Animate</button> 
<script> 
    $(document).ready(function(){ 
     $("button").click(function(){ 
      $("div").animate({ left:'300px' }); 
     }); 
    }); 
</script> 

<div style=" 
    width: 200px; 
    height: 200px; 
    padding: 25px; 
    border: 25px solid green; 
    margin: 25px; 
    position: absolute;"> 
</div> 
+0

Что ваш вопрос/ошибка? – Chrismas007

ответ

2

Селектор "button" матчи каждый кнопка в документе в то время. Когда селектор соответствует нескольким элементам, метод $.fn.click фактически перебирает эту результирующую коллекцию и привязывает к каждому согласованному элементу.

Если вы хотите совместить только определенные элементы, вам нужно будет отличить их от других согласованных элементов. Одним из наиболее распространенных способов сделать это, если, давая им уникальный ID:

<button id="remove">Remove</button> 
<button id="animate">Animate</button> 

И затем предназначаться, конкретно от вашего сценариев:

$("#remove").click(function remove() { 
    $("div").remove(); // This removes every div from the document 
}); 

$("#animate").click(function animate() { 
    $("div").animate({ left: 300 }); // Animates the left property of every div 
}); 
+1

Симпатично объяснено, а не просто указание очевидного :) –

0

Вам необходимо назначить другой id или class к каждый кнопка. Вы также можете сконденсировать оба скрипта в один. Также кажется, что вместо использования селектора div вы также должны назначить id или class на div с.

<script> 
    $(document).ready(function(){ 
     $("#button1").click(function(){ 
      $("div").remove(); 
     }); 

     $("#button2").click(function(){ 
      $("div").animate({ 
       left:'300px' 
      }); 
     }); 
    }); 
</script> 
+0

Вызов их «button1» и «button2» - это ужасная идея. Используйте значащие имена. –

+0

Это был просто пример, но спасибо, что указали это. – EternalHour

0
<button id="bremove"> Remove</button> 
<script> 
    $(document).ready(function(){ 
     $("button#bremove").click(function(){ 
      $("div").remove(); 
            }); 
           }); 
    <br/> 
</script> 

<button id="banimate"> Animate</button> 
<script> 
    $(document).ready(function(){ 
     $("button#banimate").click(function(){ 
      $("div").animate({ 
       left:'300px' 
      }); 
     }); 
    }); 
    </script> 
+1

Кодовые ответы плохие, потому что они не помогают никому учиться на ошибках. Объясните, почему оригинал не работал, что вы сделали, чтобы исправить это, и почему это исправляет его. –

Смежные вопросы