Onclick方法不起作用
onclick method doesn't work
我将点击事件绑定到动态创建的元素。这是我的动态元素创建方法。
ajaxCall("/getItems","POST",data,function(result){
var element = $('.item').first();
$('#item-list-section').empty();
for(var i = 0; i < result.items.length; i++){
var clone = element.clone();
clone.attr("id", result.items[i].itemId);
clone.find('.item-price').html("<h4>25</h4>");
if(result.items[i].itemName.length > 20){
clone.find('.item-name').css('overflow','hidden');
clone.attr('title', result.items[i].itemName )
}
clone.find('.item-name').html("<h4>"+ result.items[i].itemName + "</h4>");
clone.on('click',function(){
showToolTip();
});
clone.draggable({
revert : false,
zIndex: 1,
containment: "window",
opacity: 0.5,
cursor: "move",
helper: function() { return $(this).clone().appendTo('body').show(); }
});
$('#item-list-section').append(clone);
}
});
这是点击事件函数!
function showToolTip(){
$newDiv = $('<div></div>');
$newDiv.css("display", "none");
$newDiv.addClass('tooltip');
$newDiv.append('adfhadfhadfhadfh')
$newDiv.appendTo("body");
$newDiv.fadeIn().css(({ left: e.pageX, top: e.pageY }));
}
我使用firebug调试点,但它不会从点击功能中断!我绑定点击事件的方式是错误的!
如果您将click事件处理程序添加到for
循环之外的'#item-list-section'
元素,它将在以下范围内触发动态创建的元素:
$('#item-list-section').on('click', 'element', function() { ... });
在这里,您可以用克隆元素类型或任何识别类替换element
,就像您通常所做的那样。例如,如果克隆的元素是<div class="myDiv">
,则可以使用'div'
或'.myDiv'
,等等。
例如,如果您的标记最终是:
<div id="item-list-section">
<div class="myClonedElement"></div>
<div class="myClonedElement"></div>
<div class="myClonedElement"></div>
</div>
您可以使用以下命令将click事件绑定到克隆的元素容器:
$('#item-list-section').on('click', '.myClonedElement', function() {
showTooltip();
});
这样就不需要为每个克隆元素创建一个新的click事件处理程序。你有一个适合所有人的。
<<p> JSFiddle例子/strong>。替换代码:
clone.on('click',function(){
与这个:$(document).on('click', '#' + result.items[i].itemId, function(){
参考资料:理解事件委托
您确定原始对象没有已定义的单击回调吗?
试题:
clone.unbind("click");
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- Meteor-添加用户自定义字段的方法不起作用
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象文字方法上的Javascript绑定不起作用
- jQuery css可见性在load方法中不起作用
- 为什么jQuery悬停方法在这种情况下不起作用
- ng显示“;调用方法“;不起作用
- 在 JQUERY 中创建 HTML 后,Jquery 方法不起作用
- 下拉 jquery 方法发布表单不起作用
- 为什么push方法没有'在这种情况下不起作用:[].推
- dojo/request PUT方法dosn'不起作用
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- html视频javascript播放方法在移动Safari中不起作用
- 为什么这个扩展方法不起作用
- 我需要一种自动调整iframe大小的方法,无论我查到什么,它都不起作用
- jQuery切换方法的动画不起作用
- Angularjs 跨源资源共享 (CORS) 发布或放置方法在 IE8 和 IE9 中不起作用
- 在node_redis上实现findBy方法,但它没有'不起作用
- Splice()方法不起作用
- 使用replace方法替换innerHTML以及在Javascript中不起作用的正则表达式