Javascript 触发事件在Mootools中不起作用

Javascript 触发事件在Mootools中不起作用,javascript,mootools,Javascript,Mootools,我试图在页面加载时调用fwre-sel-region_id的change方法。通常,在更改select id的select选项后调用此方法。这对我来说不起作用,因为select id只有一个有效选项。所以我希望在通过javascript更改select id后调用它。我成功地更改了select id的索引,现在我想调用fwre-sel-region_id的更改方法 <script type="text/javascript"> setTimeout(function() {

我试图在页面加载时调用fwre-sel-region_id的change方法。通常,在更改select id的select选项后调用此方法。这对我来说不起作用,因为select id只有一个有效选项。所以我希望在通过javascript更改select id后调用它。我成功地更改了select id的索引,现在我想调用fwre-sel-region_id的更改方法

<script type="text/javascript">
setTimeout(function() {
    if ($('fwre-sel-region_id')) {
        $('fwre-sel-region_id').addEvent('change', function() {
            $('fwre-sel-city_id').options.length = 0;
            if (this.value == '(add-value)') return;
            var img = new Element('img', {
                'id': 'fwre-wait-region',
                'style' : 'margin:0;padding:0;',
                'src': '/administrator/components/com_fwrealestatelight/assets/images/spinner.gif'
            });
            img.inject($('fwre-sel-city_id'), 'after');
             new Request.JSON({
                url: '/properties?format=raw&task=loadDictionary',
                onSuccess: function(obj) {
                    if ($('fwre-wait-region')) $('fwre-wait-region').dispose();
                    if (obj.msg) {
                        alert(obj.msg);
                    } else if (obj.data) {
                        for (var i = 0; i < obj.data.length; i++) {
                            var op = new Element('option', {
                                'value': obj.data[i].id
                            });
                            op.inject($('fwre-sel-city_id'));
                            op.innerHTML = obj.data[i].name;
                        }
                    }
                    $('fwre-sel-city_id').fireEvent('change');
                }
            }).get({'parent_id':$('fwre-sel-region_id').value,'dname':'city_id'});
        });
    }
}, 500);

setTimeout(函数(){
if($('fwre-sel-region_id')){
$('fwre-sel-region_id')。addEvent('change',function(){
$('fwre-sel-city_id')。options.length=0;
如果(this.value=='(add value')返回;
var img=新元素('img'{
'id':'fwre等待区域',
'style':'margin:0;padding:0;',
“src”:“/administrator/components/com_frealestatelight/assets/images/spinner.gif”
});
img.inject($('fwre-sel-city_id'),'after');
new Request.JSON({
url:“/properties?format=raw&task=loadDictionary”,
成功:功能(obj){
if($('fwre-wait-region'))$('fwre-wait-region').dispose();
如果(对象消息){
警报(obj.msg);
}else if(对象数据){
对于(变量i=0;i

我正试图用这个脚本调用上面的方法

<script type="text/javascript" >
    window.addEvent('load', function(){
     var country = document.id('fwre-sel-country_id');
     var region = document.id('fwre-sel-region_id');
     $(country).selectedIndex = 1;
    region.fireEvent('change');
    });
    </script>

window.addEvent('load',function(){
var country=document.id('fwre-sel-country_id');
var region=document.id('fwre-sel-region_id');
$(国家/地区)。选择的索引=1;
区域。fireEvent(“变更”);
});

我的脚本位于文件和html中的脚本之下,但当region.firevent('change');执行时,它不会返回到第一个方法。为什么会发生这种情况?

为什么在添加事件处理程序时会出现不明确的
setTimeout
?使用window.addEvent('domready',fn)当需要绑定到dom事件时。您可以有多个domready绑定,但顺序在这里很重要<代码>加载
当缓存已启动且缓存的内容可能会在500毫秒延迟之前触发,这意味着不会缓存任何事件。您仍然可以执行
console.log(region.retrieve('events')
要在
firevent
之前检查事件是否已附加,还应使用
.get('value')
.getSelected()
作为api。除了
.set('value')
,还是坚持使用mootools api,而不是直接的对象道具。我真的不知道为什么会出现不明确的setTimeout事件。这不是我写的。第一个事件不是我写的,你做得好吗?