2016-07-01 1 views
0

У меня здесь проблемы. Вот мой код:Как активировать код, если он еще не родился

    $(document).ready(function() { 
        $("#button").click(function(){ 
         alert("hello"); 
         var a = $("textarea").val(); 
         var b = $("#search").val(); 
         var c = $("textarea").length; 
         var d = $("#search").length; 
         var array = []; 
         var st = ""; 
         for(var e=0;e<c;e++) 
         { 
          for (var f=0;f<d;f++) 
          { 
           if(a[e+f] === b[f]) 
           { 
            alert(a[e+f]); 
            array.push(a[e+f]); 
            if (array.length === d) 
            { 
            for(var g in array) 
             { 
             st += array[g]; 
             } 
             a.substr(e,e+f).replaceWith("vinh"); 
             break;          
            }         
           } 
           else 
           { 
           break; 
           } 
          } 

         } 
        }); 
       }); 

Плохая новость заключается в том, что, когда документ будет готов, не существует какой-либо $ («# кнопка») в первой. Только после того, как я запускаю код, который добавляет кнопку в html, но слишком поздно, кнопка не будет запускаться. Может ли кто-нибудь решить эту проблему? Большое спасибо вашей помощи

+1

Вместо использования просто нажмите, используйте $ («# кнопка»). На («нажмите», функция() {.. – Samir

+0

Вы кнопку инъекционного с помощью JQuery в HTML DOM? –

+0

Поиск для делегирования событий. –

ответ

1
$(document).ready(function() { 
$(document).on("click","#button" function(){ 
    alert("hello"); 
    var a = $("textarea").val(), 
     b = $("#search").val(), 
     c = $("textarea").length, 
     d = $("#search").length, 
     array = [], 
     st = ""; 

    for(var e=0;e<c;e++){ 
     for (var f=0;f<d;f++){ 
      if(a[e+f] === b[f]){ 
       alert(a[e+f]); 
       array.push(a[e+f]); 
       if (array.length === d){ 
        for(var g in array){ 
        st += array[g]; 
        } 
        a.substr(e,e+f).replaceWith("vinh"); 
        break;          
       }         
      }else{ 
       break; 
      } 
     } 
    }          
}); 
}); 
+0

он работает, но вы забыли запятую между «#button» и функцией() –

2

Лучший способ для запуска click на динамически созданный элемент является listen к щелчку event в DOM затем запустите его на своем желании element то он будет проверять на цели, где click был уволен ,

Использование

$(document).on("click","#button",function(){ // code goes here }) 

Узнайте больше о .on визита официальной документации JQuery Click Here

0

Вы должны использовать кнопки родителя для этого. Это пример использования «тело» в качестве родителя:

$("body").on("click", "#button", function(){ 
    // Add your code here 
} 

Посмотрите на эту тему для получения дополнительной информации: Event binding on dynamically created elements?

0

Вы можете написать код JQuery для запуска на элементе кнопки в отдельной. js и загрузить его асинхронно после кода, который загружает эту кнопку с помощью $ .getScript().

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