Javascript 从嵌套函数中选择事件目标
我在JQuery选择方面遇到了一些问题。我有一个click处理程序,当用户单击表中的一行时,它处理逻辑。但是,当单击其中一些行时,单击逻辑将发现它们包含无效数据,我想将它们灰显。为此,我添加了一个合适的CSS类,将它们的文本变成灰色(或者禁用它们) 我的基本结构是:Javascript 从嵌套函数中选择事件目标,javascript,jquery,css,Javascript,Jquery,Css,我在JQuery选择方面遇到了一些问题。我有一个click处理程序,当用户单击表中的一行时,它处理逻辑。但是,当单击其中一些行时,单击逻辑将发现它们包含无效数据,我想将它们灰显。为此,我添加了一个合适的CSS类,将它们的文本变成灰色(或者禁用它们) 我的基本结构是: $('#tableInfo tr').live('click', function(){ function doStuff(){ //Ajax call $.ajax({ .
$('#tableInfo tr').live('click', function(){
function doStuff(){
//Ajax call
$.ajax({
...
...
)}.success(function(){
...
} else {
var target = $(event.target);
target.addClass('disabled');
}
});
});
var information = $(#misc-information)
doStuff(information)
至少这是基本的想法。我关心else
块中的内容,它没有按我所认为的那样工作。我做了一些关于如何处理这种逻辑的研究,event.target似乎正是我在寻找选择事件的当前来源(我要禁用的单击行)时所寻找的。我嵌套在一个事件处理程序中,我正在选择事件目标,但这似乎没有任何作用,我不知道为什么
感谢您的帮助。您没有传递事件对象,目标拼写错误
$('#tableInfo tr').live('click', function(event){ // event param here
function doStuff(){
//Ajax call
$.ajax({
...
...
)}.success(function(){
...
} else {
var target = $(event.target); // typo here
target.addClass('disabled');
}
});
});
在您的真实代码中是否拼写为
tarrget
?另外,您使用的是哪个版本的jquerylive
很久以前就被弃用了,现在已经被完全删除。可能应该开始使用.on()
而不是.live()
在2013年这里…“TarTarget”只是一种类型。我只是在这里“总结”了更长的代码以消除所有的漏洞的一般想法。很好,事件没有被传递正是问题所在。