append 后不触发事件
时间: 2023-08-30 10:04:09 浏览: 43
在 EasyUI ComboBox 中,如果您使用 `append()` 方法向下拉面板中添加新元素,该元素默认是没有绑定事件的。因此,如果您需要为新添加的元素绑定事件,可以在添加元素时手动为其绑定事件。
以下是一个示例代码:
```javascript
// 获取 EasyUI ComboBox 下拉面板对象
var panel = $('#myComboBox').combobox('panel');
// 创建新的行元素
var newRow = $('<div>new row</div>');
// 将新的行元素添加到下拉面板中
panel.append(newRow);
// 为新添加的行元素绑定事件
newRow.on('click', function(){
alert('new row clicked.');
});
```
在上述代码中,我们使用了 `on()` 方法为新添加的行元素绑定了 `click` 事件。这样,在用户点击新添加的行元素时,就会触发该事件并执行相应的操作。
需要注意的是,如果您使用了 EasyUI Combobox 中的 `data` 属性来加载下拉面板的内容,那么新添加的元素可能无法显示,因为在下拉面板的渲染过程中,EasyUI Combobox 会根据 `data` 属性重新生成下拉面板的内容。因此,如果您需要在 EasyUI Combobox 中动态添加元素并显示出来,建议使用 `append()` 方法并手动绑定事件。
相关问题
append无法触发事件
在Python中,`append`是一个列表方法,它用于将一个元素添加到列表的末尾。它并不会触发任何事件,因为它只是在列表中添加一个元素而已。
如果你想在添加元素时触发某些事件,你可以定义一个自定义的`append`方法,并在其中添加你想要触发的事件。例如:
```python
class MyList(list):
def append(self, item):
super().append(item)
print(f"Added {item} to the list!")
```
在这个示例中,我们定义了一个自定义的`MyList`类,它继承了Python内置的`list`类,并覆盖了`append`方法。在这个自定义的`append`方法中,我们首先调用了父类的`append`方法来添加元素,然后打印了一条消息来表示元素已经被添加到列表中。
使用这个自定义的`MyList`类,每当你调用`append`方法添加一个元素时,它都会打印一条消息来表示元素已经被添加到列表中。例如:
```python
my_list = MyList()
my_list.append(1)
# Output: Added 1 to the list!
```
请注意,这只是一个示例,你可以根据自己的需求定义自己的自定义`append`方法来触发特定的事件。
ext FileUploadField 选择文件后触发事件 预览图片
在Ext JS中,可以通过监听 `change` 事件来触发文件选择后的操作,然后通过 `FileReader` 对象读取文件并使用 `Image` 对象来预览图片。
以下是一个基本的示例代码:
```javascript
Ext.create('Ext.form.Panel', {
title: 'File Upload Example',
width: 400,
bodyPadding: 10,
renderTo: Ext.getBody(),
items: [{
xtype: 'filefield',
name: 'photo',
fieldLabel: 'Photo',
labelWidth: 50,
msgTarget: 'side',
allowBlank: false,
anchor: '100%',
buttonText: 'Select Photo...',
listeners: {
change: function(field, value) {
var file = field.fileInputEl.dom.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var img = Ext.DomHelper.append(Ext.getBody(), {
tag: 'img',
src: e.target.result,
style: 'height:150px;margin-top:10px;'
});
};
reader.readAsDataURL(file);
}
}
}],
buttons: [{
text: 'Upload',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
form.submit({
url: 'photo-upload.php',
waitMsg: 'Uploading your photo...',
success: function(form, action) {
Ext.Msg.alert('Success', action.result.msg);
},
failure: function(form, action) {
Ext.Msg.alert('Failed', action.result.msg);
}
});
}
}
}]
});
```
在上面的示例中,我们使用 `FileReader` 对象读取文件,并将读取的结果作为 `src` 属性设置到 `img` 元素中,从而实现了预览图片的功能。请注意,这里仅仅是一个基本的示例代码,您可以根据您的具体需求进行修改和优化。