2014-12-17 2 views
2
<td><input name="SeeUsers" id="SeeUsers" class="SeeUsersButton" value="See Users" type="button" title="#qPages.id#" onclick="ListUsers();"></td> 

<script type="text/javascript"> 

     ListUsers=function(){ 
      var userid = $(this).title; 
      $('.userslistdiv').text(userid); 
      $('.userslistdiv').show; 
     }; 

</script> 

Я пытался связать этот вход с событием jquery click, но не смог его запустить. Итак, я сбросил функцию jquery click и просто использовал onclick =. Ни один из участников не запускает это событие.jquery click not firing

Проблема может заключаться в том, что на главной странице есть cfdiv, который динамически загружает контент, содержащий вход с помощью onclick =. Но я делаю это на нескольких страницах, используя jquery datepicker без проблем.

В инструментах dev я вижу скрипт, и он находится в голове.

Отредактированный код:

ListUsers=function(el){ 
     var userid = el.title; 
     $('.userslistdiv').text(userid); 
     $('.userslistdiv').show; 
    }; 

<input name="SeeUsers" id="SeeUsers" class="SeeUsersButton" value="See Users" type="button" title="#qPages.id#" onclick="ListUsers(this);"></td> 
+0

Почему бы не использовать JQuery для обработчиков событий, а также, то он будет работать (если вы меняете его на 'this.title'). – adeneo

+0

'var userid = $ (this) .title;'. Где «это»? –

+0

Все еще не работает – user990016

ответ

5

Если вы пытаетесь стрелять событие на динамически добавленного элемента вы должны сначала выбрать который уже существует, который включает динамически добавленный элемент. Это может быть div, в который вы добавили новый элемент, или вы можете использовать объект документа, если вы не знаете заранее, когда элемент будет добавлен.

Javascript необходимо: (предупреждение добавил, чтобы вы знаете произведения событий)

Код Pen Пример: http://codepen.io/larryjoelane/pen/zrEWvL

/* You can replace the document object in the parentheses 
    below with the id or class name of a div or container 
    that you have appended the td tag 
*/ 
$(document).on("click","#SeeUsers",function(){//begin on click event 

      var userid = $(this).title; 
      $('.userslistdiv').text(userid); 
      $('.userslistdiv').show; 

      //test to see if event fired! 
      alert("it worked"); 

     });//end on click event 
+0

Awesome, спасибо большое :) – Niloct

+0

Без проблем я рад, что это помогло –

2

this внутри ListUsers не относится к щелкнутому элементу, так что вы должны передать ссылку Clicked элемента как пары

<input name="SeeUsers" id="SeeUsers" class="SeeUsersButton" value="See Users" type="button" title="#qPages.id#" onclick="ListUsers(this);"> 

затем

ListUsers = function(el) { 
    var userid = el.title; 
    $('.userslistdiv').text(userid); 
    $('.userslistdiv').show(); 
}; 

-

Но поскольку у вас есть JQuery, использовать JQuery для обработки событий

jQuery(function ($) { 
    $('#SeeUsers').click(function() { 
     var userid = this.title; 
     $('.userslistdiv').text(userid); 
     $('.userslistdiv').show(); //it is a function 
    }); 
})