两个相同的功能,但只有一个火灾

时间:2017-02-27 19:07:53

标签: javascript jquery

我有一个JQuery脚本,在两个不同的位置有两个看似相同的点击处理程序。但是当我点击相应的按钮时,只有一个被触发。这是为什么?

{-# LANGUAGE ScopedTypeVariables #-}

import Prelude (Eq, Enum, Num, Ord, snd, (==), (<$>))
import Data.List (head, group, sort, zip)

f :: forall a. (Eq a, Enum a, Num a, Ord a) => a -> [a] -> [a] -> [a]
f replacement indices values =
    go (head <$> group (sort indices)) (zip [0..] values)
  where
    go :: [a] -> [(a, a)] -> [a]
    go []     vs                     = snd <$> vs
    go _      []                     = []
    go (i:is) ((i', v):vs) | i == i' = replacement : go is vs
    go is     (v:vs)                 = snd v       : go is vs

只有&#39;处理程序1&#39;被叫。无法弄清楚为什么。两者似乎完全一样。

1 个答案:

答案 0 :(得分:1)

处理程序2不会触发,因为它是在页面初始化时设置的,因此计数将等于零,并且没有#addThisNumber0输入。要解决此问题,您可以进行以下更改:

var count = 0;

$("#add").click(function(){

    count++;


    $("#numberFields").append('<input class='addThisNumber' type="button" id="addThisNumber'+ count +'">');

    //Handler 1
    $("#numberFields").on('click', "#addThisNumber"+count, function(){


        console.log("Handler 1" + count);

    });



});


//Handler 2
$("#numberFields").on('click', ".addThisNumber", function(){


    console.log("Handler 2" + count);

});
相关问题