admin管理员组

文章数量:1344938

I need to add a Button to every select2 item and prevent the default event so only the button gets triggered.

I have the following code but the normal onSelect event still gets triggered:

select.on('select2:select', test2);

function test2(e) {
    if (e.params.originalEvent.target.classList.contains('TreeButton')) {
        //stop event execution
        e.stopPropagation();
        e.preventDefault();
        return false;
    } else {
        //execute normal
    }
}

I need to add a Button to every select2 item and prevent the default event so only the button gets triggered.

I have the following code but the normal onSelect event still gets triggered:

select.on('select2:select', test2);

function test2(e) {
    if (e.params.originalEvent.target.classList.contains('TreeButton')) {
        //stop event execution
        e.stopPropagation();
        e.preventDefault();
        return false;
    } else {
        //execute normal
    }
}
Share Improve this question edited Jan 3, 2018 at 18:11 beaver 17.7k2 gold badges43 silver badges68 bronze badges asked Jan 3, 2018 at 14:49 TiDiTiDi 631 silver badge4 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 10

Try to catch select2:selecting event:

select.on("select2:selecting", function (e) { 
    if (e.params.args.originalEvent.target.className === 'btn') {
      e.preventDefault();
    }
}

Here is a jsfiddle: http://jsfiddle/beaver71/dtjhpnm7/

本文标签: javascriptSelect2 cancelpreventDefault select2select at specific condition (v40x)Stack Overflow