在不触发Click事件的情况下更改事件

时间:2017-04-03 08:21:30

标签: javascript jquery

我有这段代码:

var $d_docSelect = $("<select>").appendTo($registerExamBox).click(function(){
    while($d_docSelect[0].firstChild) $d_docSelect[0].removeChild($d_docSelect[0].firstChild);
    $.ajax({
        url: 'test.php',
        type: 'POST',
        data: {
            func: 87,
        }
    }).done(function($msg){
        try{
            $docs = JSON.parse($msg);
        }catch($e){
            console.log($e.message);
            return false;
        }
        $docs.forEach(function($row){
            $("<option>", {"doc" : $row[0]}).text($row[1] + ' ' + $row[2] + ' ' + $row[3]).appendTo($d_docSelect);
        })
        $("<option>").text("Dodaj").appendTo($d_docSelect);
    });
}).change(function(){
    if($d_docSelect[0].selectedIndex == $d_docSelect[0].length - 1){
        addDoc($d_docSelect);
    }
});

每当我更改选项时,我选择的不仅是&#34;更改&#34;事件触发器,但是&#34;点击&#34;太。 我不想触发&#34;点击&#34;在更改选项时,我不知道如何。我在这里和谷歌都没有找到答案。

2 个答案:

答案 0 :(得分:0)

在javascript中,如果在addEventListner()上设置3 rd参数为true,则可能会使用bubbling来捕获事件,当你在ontic html上添加事件时,你可能会阻止点击

答案 1 :(得分:0)

好。

我想我猜你想做什么,但我不确定你是否采取了正确的方式。

点击选择时加载选项意味着每次点击事件发生时您都会加载这些选项。 当你的页面准备就绪时,你为什么不试图加载这些选项(也许是最常见的方式,但你可能有充分的理由我不知道)? 然后,您只会获得您的更改事件而且不会发生冲突。

现在,如果有人知道并且可以显示在更改事件发生时如何取消点击的示例(我已经知道在点击之前发生了更改)