jQuery .on(’click’)不适用于jQuery UI draggable

我有一个关于jQuery的问题。 我真的很喜欢jQuery,甚至是javascript,所以请耐心等待。

我在我的应用程序中的某些div上使用jQuery UI draggable。 问题是,jQuery .on(’click’)似乎不适用于这些div。 我确实尝试使用.click(),它确实有效。 但是,div将动态创建,并且基于我所学到的,当我们想要使用动态创建的元素时,最好使用.on()。 以下是我的HTML代码段:

First text

Second text

这是jQuery片段:

 $('div.draggable-text').draggable({ cursor: 'move', delay: 200, containment: 'parent' }).resizable().selectable(); // This one doesn't work $('div.book-page').on('click', 'div.book-page > div.draggable-text', function () { alert('clicked!'); // some more coding here... }); // This one works /*$('div.book-page > div.draggable-text').click(function () { alert('clicked!'); // some more coding here... });*/ 

最后,这里是我创建的jsfiddle的链接 。 我真的很感激任何帮助。

谢谢! 抱歉英语不好。

您的第二个看起来有一些语法错误。

试试这个:

 $('div.draggable-text').on('click', function () { alert('clicked!'); // some more coding here... }); 

阅读jQuery’on’事件的语法,以更好地理解参数的用途.http://api.jquery.com/on/

干杯!

试试这个:

 $('div.draggable-text').click(function(e){ e.preventDefault(); alert('test'); }); 

Jquery语法是incorect试试这个:

 $('div.draggable-text').on('click', function () { alert('clicked......'); // some coding here... }); 

点击这里: http : //jsfiddle.net/jS8sK/2/

如果你想将bind click事件绑定到dinamically创建的draggable元素,你的第一个想法几乎是正确的。

这是一个固定的代码: http : //jsfiddle.net/G75qs/3/

 $('.draggable-text').draggable({ cursor: 'move', delay: 200, containment: 'parent' }).resizable().selectable(); //Bind click event for all element with class .draggable-text including //elements dynamically created $('.book-page').on('click', '.draggable-text', function () { alert('clicked!'); // some more coding here... }); 

对于动态创建的Div,最好使用.live用于事件。

 $('div.draggable-text').die('click').live('click', function () { alert('clicked......');