Javascript 检查当前单击的元素是否等于特定div';id';在JQuery中

Javascript 检查当前单击的元素是否等于特定div';id';在JQuery中,javascript,jquery,this,Javascript,Jquery,This,我已经在网络上研究并测试了一个解决方案很长一段时间了,但一直没有能够使这个工作。所以我决定在这里创建一个帖子,尽管它可能技术水平很低,我会被否决。我已经付出了很多努力,希望有人能帮助我 目前,我的代码使用JQuery中的.click()函数,我的目标是在按钮上使用它,这样当我单击该按钮时,它会检查单击的按钮的id是否与我在.js文件中设置的变量匹配。换句话说,检查我点击的东西的id是否等于我的“目标” 这是代码中出现问题的部分: var target = '#vig_but_inc'; $(t

我已经在网络上研究并测试了一个解决方案很长一段时间了,但一直没有能够使这个工作。所以我决定在这里创建一个帖子,尽管它可能技术水平很低,我会被否决。我已经付出了很多努力,希望有人能帮助我

目前,我的代码使用JQuery中的
.click()
函数,我的目标是在按钮上使用它,这样当我单击该按钮时,它会检查单击的按钮的
id
是否与我在
.js
文件中设置的变量匹配。换句话说,检查我点击的东西的
id
是否等于我的“目标”

这是代码中出现问题的部分:

var target = '#vig_but_inc';

$(this).click(function() {

    if(this.id == target) {
        vigor.incStat(); // increase stats once
        console.log("hi"); // test if code fires
        $('#vig_res').html(vigor.current);
    }
});
请注意,我已检查代码是否在不匹配
id
、不匹配
if
-语句的情况下工作-在这种情况下,如果我单击特定预设按钮的
id
,我会设法增加
#vig_res
的值,这是我的目标

但是,如前所述,如果涉及到
if
,我将尝试将所单击的内容与我的
目标
匹配,这是我希望它匹配的
id
名称。我正在使用
这个
来检查我的点击,它在其他领域也有效,但在这种情况下似乎不起作用

我已创建了变量目标全局范围,如注释中所述:。它仍然不起作用

我知道并且已经测试了
$(this)。单击(..
),它将触发我单击的
div
中的代码。因此我相信问题在于之后,可能在
this.id
中,但我也使用了其他地方建议的
.is()
,但它也不会以这种方式工作


我希望有人能给我一些关于如何解决这个问题的见解,谢谢。

在调用click函数之前使用所选的id和类,如

$('.class').click(function() {});

答案稍微复杂一点,在触发单击时调用的匿名函数中,
这个
不是单击的元素,而是一个jQuery对象。您应该接受作为第一个参数的
事件
,并使用
事件.目标
。另外,
目标
不应该包含
,因为他
.id
只返回名称

因此,您的代码应该如下所示:

var target = 'vig_but_inc';

$(this).click(function(event) {
    console.log(event.target);
    if(event.target.id == target) {
        vigor.incStat(); // increase stats once
        console.log("hi"); // test if code fires
        $('#vig_res').html(vigor.current);
    }
});

工作提琴:

通过检查
这个.id
给你
这个
$(这个)中指的是什么来调试。点击()
?学会使用
控制台
@Satpal我相信我学会了这会让当前点击的事件触发
。点击()
函数在这方面,我已经尝试过,只要我不尝试匹配
这个.id
,它就可以工作。我的目标是检查我点击的东西是否是我预设的
id
,如果是,在函数中激发代码。我不确定将按钮点击抽象到它们的id是否值得。为什么不定义一个这样的函数呢单击按钮时更新活力,即$('#vig_but_inc')。单击(更新活力的函数,不带“if”,用于检查单击按钮的id);以及将事件处理程序、文档分配给的$(this)是多少?谢谢,但我看不出小提琴是如何“工作的”,如果我单击文本(div),则不会发生任何事情)。我修改了一些代码,这样当它检测到点击并通过if语句进行测试时,就会出现一些东西,但什么也没有出现。你能帮我重新检查一下,并举一个例子,在这个例子中,单击传递
if
语句,输出中有一些变化吗?好的,很好,它正在工作!我看到您在
if
语句
event.target.id
-为什么是event.target而不是
。这是
?换句话说,target是我们在顶部创建的一个变量,为什么我们要将这一事件与它本身进行比较?如何使用此函数匹配另一个目标,是否必须将其更改为
event.target2.id==target2
event
是一个事件对象。您可以在此处阅读更多信息:<代码>事件。目标
不是指您声明的目标<代码>事件。目标
事件
对象上的一个键。如果你想与
target2
进行比较,你应该简单地
event.target.id==target2
@Andrici_Cezar好的,我现在解决了我的困惑,基本上你写了“
event.target.id
”,我感到困惑,认为那行中的
target
与我们的
var target='vig_但_inc'是同一个目标!!但我认为这只是
事件
功能的一部分。谢谢你的帮助,非常感谢。@Darkphoton没问题。哇!真正地