如何使jquery绑定事件工作

时间:2010-04-05 15:07:21

标签: jquery events bind

由于某些原因,我的绑定事件将无效。 您可以在此处查看我的代码:http://dl.dropbox.com/u/145581/MyPage/default.html

点击“添加小工具”或“删除小工具”按钮应该会触发警报,但没有任何反应。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您对bind的来电是在$(document).ready( )处理程序之外进行的,因此您的元素尚未存在。将它们移动到$(document).ready()或使用jQuery的live(...)

答案 1 :(得分:0)

首先,请确保在bind()事件中移动$(document).ready()方法。由于它们在DOM准备好之前被调用(即在那些DOM元素存在之前),因此无法将事件绑定到它们。

此外,直到jQuery 1.4才支持将对象传递给bind()。 (您可以使用我下面的代码,或升级到1.4以按原样使用bind()方法。(您仍然需要将它们移到ready()事件内。

$(document).ready(function(){
    // enable sortable on all columns
    // this will add drag-and-drop functionality as well
    $("#mypage_column1").sortable({
        items: '.gadget', // the type of element to drag
        handle: 'h2', // the element that should start the drag event
        opacity: 0.9, // opacity of the element while draging
        connectWith: ["#mypage_column2"]
    });

    $("#mypage_column2").sortable({
        items: '.gadget', // the type of element to drag
        handle: 'h2', // the element that should start the drag event
        opacity: 0.9, // opacity of the element while draging
        connectWith: ["#mypage_column1"]
    });

    $("img.btn_delete").bind('click', function() {
        alert("Removing this gadget");
      });

    $("img.mypage_add_gadget").bind('click', function() {
        alert("Adding a new gadget");
      });
});