我想提醒特定的div是否有点击。

场景:

<div class="container">
<div class="header"> <h1>Headline<h1> </div>
<div class="productbox"></div>
</div>


我知道如何提醒标题...

$("h1:contains('Headline')").one( function() {
alert("ALERT Headline");
});


...以及如何提醒Productbox

$(".productBox").click(function){
alert("ALERT Productbox click");
});


现在,我想“结婚”这两个。

我的代码:

if (!$("h1:contains('Headline')").one(function) && !$(".productBox").click(function)){
alert:("Alert when h1 contains Headline and ProductBox is clicked")};


取自:Jquery "if this and if that" then do this

旁注:没有唯一的选择器(我可以使用的元素或ID),这就是为什么我想使用标题的原因。

尽管“标题”不直接位于productBox类的上方

最佳答案

您应该知道click是一个事件,并且仅当有人实际单击时才调用其中的函数。其余代码在代码正确启动时执行,请记住这一点。

您的代码包含以下语义部分:


分配一个单击处理程序:当somone单击时,将触发此函数。
检查是否存在内容Headline的H1
如果是,则发出警报。
仅当某人单击时才触发第2点和第3点(因此,在触发点击处理程序时)


您的代码:

//Registering an on click handler, code inside here fires whe someone clicks
$(".productBox").click(function(){
  //check if headline exists in your code (i prefer checking with length, since it returns a jquery array of found elements for this selector)
  if ( $("h1:contains('Headline')").length == 1 )
  {
    //alert user if so
    alert("Alert when h1 contains Headline and ProductBox is clicked");
  }
});


关于jQuery one()

http://api.jquery.com/one/

一种是与click相同的功能:但是只有处理程序会触发一次。您可以这样使用它:

//Registering a click handler that only fires once, code inside here fires whe someone clicks
$(".productBox").one("click",function(){
  //check if headline exists in your code (i prefer checking with length, since it returns a jquery array of found elements for this selector)
  if ( $("h1:contains('Headline')").length == 1 )
  {
    //alert user if so
    alert("Alert when h1 contains Headline and ProductBox is clicked");
  }
});

关于javascript - 提醒特定div中是否有点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36286754/

10-12 05:28