1

我有这个 jquery 函数,它应该在我调用它时触发。现在,当我调用它时,它确实会启动;然而,不幸的是,它也会在 OnLoad 时触发。我怎样才能阻止这种情况发生?

这是我调用该方法的方式:

<telerik:RadListBox ID="RadListType" CssClass="RadListBoxWZMenu" runat="server" OnClientDropped="LocationItem('Type')">

这是方法:

$(function LocationItem(zonetype) {
   var NewDialog = $('<div class="droppable"></div>');
   NewDialog.dialog({
   modal: false,
   title: $('<label>' + zonetype + '</label>'),
      show: 'clip',
      hide: 'clip',
      buttons: [
        { text: "Edit", click: function () { EditFields() } },
      ]
   });
   return false;

});
4

4 回答 4

4

我认为将它包装在 $() 函数中意味着它在 JQuery 加载时被调用

尝试完全删除 $()

于 2012-12-17T14:00:38.723 回答
3

删除封装括号、前导美元符号和尾随分号 (ie $();)。

于 2012-12-17T14:01:08.590 回答
2

您不需要将函数包装在$. 如果你只是把这样的函数放在你的代码中:

function LocationItem(zonetype) {
   var NewDialog = $('<div class="droppable"></div>');
   NewDialog.dialog({
   modal: false,
   title: $('<label>' + zonetype + '</label>'),
      show: 'clip',
      hide: 'clip',
      buttons: [
        { text: "Edit", click: function () { EditFields() } },
      ]
   });
   return false;
}

那么你应该没有任何问题。

于 2012-12-17T14:01:47.607 回答
1

包装代码

$( //your code )

相当于

$(document).ready( //your code )
于 2012-12-17T14:02:27.887 回答