Javascript:区分用户或脚本引起的更改事件

时间:2012-05-09 00:48:53

标签: javascript jquery javascript-events

我遇到过某些脚本更改select / radio / checkbox的情况。这引发了变革事件。但是,我需要单独一个事件来告诉我用户更改了元素。显然,当从脚本触发更改时,它会注册为用户更改。

当您更改select / radio / checkbox的值时,有没有办法阻止脚本触发更改事件?

2 个答案:

答案 0 :(得分:4)

使用jQuery.trigger()并在从代码触发事件时传递其他参数。

例如:

$('select').bind('change', function(e, isScriptInvoked) {
    if (isScriptInvoked === true) {
        // some code for when artificial
    } else {
        // some code for when organic
    }
});

// Trigger the event.
$('select').trigger('change', [true]);

答案 1 :(得分:0)

尝试:

function changeEvent(){
    if(this.type.toLowerCase()=='select' || this.type.toLowerCase()=='radio' || this.type.toLowerCase()=='checkbox')
        return false;
    else{
        //Your code here
    }
}