调用jQuery函数

时间:2012-01-05 21:26:42

标签: jquery json

我希望那些不同的事件能够调用相同的函数。我从这里读了其他帖子,但我想在一页中使用这个功能。

情况是这样的:

我有约。 80表单中的列表框(选择),我通过插件jCombo(jQuery&amp; jSON&amp; php)提供它们。首先,我将每个选择列表框(.change())与隐藏字段相关联,因为我想在表上存储索引(更新方法是使用php制作的)。问题是当我重新打开相同的修改记录(相同的php文件)时,jCombo将所有<select lists>更改并重新初始化为0.所以我的事件$("select#listbox").change({});显然会将我的隐藏字段值更改为0。 / p>

有了这种情况,我找到了一个简单的解决方案(我开始在三天前使用jQuery和Ajax)来解除选择列表中的函数并转换为$(“#AddButton”)。onmouseup({...});. 所以,我写了80个隐藏的字段:

if ($("select#listbox_n_").val() != 0) {
   $("#hidden_n_").val($("select#listbox_n_").attr('value'));
}

,其中n = 1 ... 80。

但是现在我必须重复这个更新按钮,所以:

  1. 还有其他方法可以通过名称来处理函数吗?
  2. “存储”功能的最佳位置(例如,程序或其他)是什么,因为我想执行它们,只有在它被调用时才会执行。

1 个答案:

答案 0 :(得分:0)

我猜你要做的是从多个事件调用一个函数?如果是这样,您需要做的就是编写您的函数并在事件中引用它。至于放置函数,只需将它放在document.ready($(function() {...});)之外。

只是为了说明,这是我在阅读这个问题时碰巧写的东西。这将检查textarea字段的长度,并将其返回。这只是简单而简单的HTML / jQuery。

HTML:

<label for="message">Message: </label>
<textarea name="message" id="message" rows="5" cols="70"></textarea>

jQuery的:

$(function() {
       $("#message").keyup(checkLength);
       $("#message").keydown(checkLength);
       });

function checkLength() {
    var maxlength = 255;
    var charlength = $(this).val().length;
    var returnstring = (charlength + " of " + maxlength + " characters used.");
}

如您所见,函数checkLength()在textarea的keyup和keydown事件上被调用两次。请注意,就像我上面说的那样,它们被放置在document.ready函数的OUTSIDE之外。然后它返回一个字符串,其中包含已添加的字符数,与最大数量进行比较。最后,但并非最不重要的是,请注意该函数名为WITHOUT()。这意味着它只是对函数的引用,只有在触发特定事件时才会调用它。

我希望这有帮助!