jQuery能根据名称(var name =‘事件名’) 动态触发这个事件(append html preappend 这三个)吗?
我想根据 append html preappend 动态的选择一个事件添加某数据
var fnName="html";
var htmlContent=$("#tt")[fnName]();
这样就可以了
name=function(){
$('#id').append("......");
}
类似这样子自己定义事件,是这个意思吗
不是 比如传入一个字符串 “html” 我就能执行 $("#dv").html()方法
传入一个字符串 “append” 我就能执行 $("#dv").append()方法
我不想用if else来判断
@koi: 我觉得到头来还是要判断,这样的函数应该要自己写
@雾里小梅花:
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("p").bind('click dblclick mouseover mouseout',function(event){
$("div").html("事件:" + event.type);
});
});
</script>
</head>
<body>
<p>该段落定义了 click、double-click、mouseover 以及 mouseout 事件。如果您触发了其中的一个事件,下面的 div 中会显示出事件的类型。</p>
<div></div>
</body>
</html>
利用eval函数应该可以实现
$("父级元素").delegate("需要绑定事件的元素", "事件", function () {
//操作
});
假设页面有id为container的节点
<div id="container"></div>
步骤一:
现在绑定html、preappend、append三个事件,注意只要通过evt.type来获取事件的类型就ok了,剩下要执行什么代码都随便自己
$('#container').on('html append preappend', function(evt){ switch(evt.type){ case 'html': // 执行代码 breadk; case 'append': // 执行代码 breadk; case 'preappend': // 执行代码 breadk; default: // 执行代码 breadk; } });
步骤二:触发事件
接着手动触发事件就好了,触发的事件类型随便改
var eventType = 'html'; // 随便替换 $('#container').trigger(eventType);