我有一个关于jQuery的一个问题。 我用jQuery真新,甚至是JavaScript的对于这个问题,所以请多多包涵。
我使用jQuery UI拖动在我的应用程序一些div。 问题是,jQuery的。对(“点击”)似乎并不与这些div工作。 我曾尝试使用。点击()和它的工作。 然而,申报单将要动态地创建,并根据我所学会的是最好用。对()的时候,我们要使用动态创建的元素。 下面是我的HTML片段:
<div class="book-page">
<div class="draggable-text">
<p>First text</p>
</div>
<div class="draggable-text">
<p>Second text</p>
</div>
</div>
这里是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的语法“关于”事件更好地了解在何去何从的论点。 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/
如果你想绑定click事件dinamically创建拖动元素,您的第一个想法是正确的差不多。
这里是一个固定的代码: 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......');