<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点击事件,但无法触发它。所以,我转储了jquery点击功能,只使用了onclick =。两人都没有开火。
问题可能是主页面有一个cfdiv,它动态加载带有onclick =输入的内容。但我使用jquery datepicker在几个页面上执行此操作没有问题。
在开发工具中,我可以看到脚本,它在头部。
编辑代码:
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 :(得分:5)
如果您尝试在动态添加的元素上触发事件,则必须首先选择已存在的包含动态添加元素的元素。这可以是一个div,你在其中添加了新元素,或者你可以使用文档对象,如果你事先不知道元素的添加位置。
需要Javascript :(添加警报以告知您事件有效)
代码笔示例: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
答案 1 :(得分:2)
this
内的 ListUsers
未引用所点击的元素,因此您需要将点击的元素引用作为参数传递
<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
});
})