Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 添加div后使用它_Jquery_Jquery Ui - Fatal编程技术网

Jquery 添加div后使用它

Jquery 添加div后使用它,jquery,jquery-ui,Jquery,Jquery Ui,所以我不太擅长js。。。在将div添加到dom后,我遇到了一个问题,无法理解,之后如何使用它 所以我有一个简单的代码,它添加了div $('#add_frame_by_button').click(function(){ $('body').append(crazy_frame); }); 也有 $("#resizable").draggable().resizable({ resize: function(event, ui) {

所以我不太擅长js。。。在将div添加到dom后,我遇到了一个问题,无法理解,之后如何使用它

所以我有一个简单的代码,它添加了div

$('#add_frame_by_button').click(function(){
        $('body').append(crazy_frame);
    });
也有

$("#resizable").draggable().resizable({
        resize: function(event, ui) {
            //some code
        }
    });

那么,如何在添加后将其绑定到工作状态呢?

正如您所说的绑定是您的答案。您将把点击事件绑定到父元素,它将监视任何点击事件。当前,您仅在可用元素上设置单击事件

他们网站上的样本:

$('#foo').bind('click', function() {
  alert('User clicked on "foo."');
});

您可以在附加div并将事件绑定到div之后尝试遍历它

$('body').append(疯狂的框架)。children('resizeable').draggable()…

现在可能发生的是
$(“#resizable”)。DragTable()…
在加载页面时绑定事件,但在加载页面后追加内容

您还可以尝试使用带有选择器的jQuery
on()
始终绑定事件,或者如果您使用的是jQuery pre-1.7,则使用
live()
/
delegate()

初始单击如何附加到对象没有问题,因此这与此无关。

我认为您正在寻找jQuery的
.on()
函数。其他一些答案提到了
.live()
函数,但从jQuery 1.7开始,该函数已被弃用

.on()
函数将允许您侦听从子元素冒出的特定事件,并做出相应的响应。如果将
.on()
方法应用于将包含动态添加的
的元素,则可以定义一个函数,该函数将在该元素中的
出现特定事件时随时调用


另外,您是否有理由不能简单地应用
.click()
处理程序本身中的各种
.resizeable()
.draggable()
函数?

您的问题还不太清楚

我想这就是你想要的:

如果要添加框架,则需要构建一个框架,因此必须附加以下内容:

<div id='crazy_frame' style='width:200px;height:100px;background-color:red'></div>

我给一些尺寸和颜色,以便我可以看到,当然你可以改变大小和颜色

如果你想给这个“框架”一个可拖动的属性,你只需要调用可拖动的方法

<script type="text/javascript">
$(document).ready(function(){
 $('#add_frame_by_button').click(function(){
  $('body').append("<div id='crazy_frame' style='width:200px;height:100px;background-      color:red'></div>");
  $('#crazy_frame').draggable();
 });    

});

</script>

$(文档).ready(函数(){
$(“#通过按钮添加框架”。单击(函数(){
$('body')。追加(“”);
$(“#疯狂帧”).draggable();
});    
});

如果你那样做,你很快就会面临一个问题。告诉我我是否正确遵循

是不是
变量crazy\u frame a的ID为resizeable?
@ohgod为什么是的,如果div已经在dom中,那么一切都正常。我想不出来,如何添加…谢谢,效果很好。但也许你有什么建议,如何使用bind()?以防万一……我猜你指的是托尼的答案。您绑定单击的方式没有问题。你可以使用
click()
.bind('click')
。是的,在添加帖子之前,我尝试使用live和其他工具,但问题在于resize:function(event,ui)我想我可能用
live()
注释误导了你<无法使用
live()
附加code>draggable()和
resizeable()
,因为它们不是事件,而是自定义jQuery插件。只需在附加内容后进行绑定,就可以了。