调用属性的函数

时间:2009-09-09 08:58:14

标签: jquery function

是否可以调用属性的方法?

我的意思是,我有这个输入(这是使用jQuery动态创建的,当使用.get()检索公司列表时):

<input type="checkbox" onclick="javascript:onWorksiteChecked(this,'Virtus Västerås AB, STOCKHOLM','1:201334661','5566109426');" value="1:201334661"/>

我有一个Select All方法,顾名思义就是Select All this,它的执行方式为

$("#ulworksites li input:checkbox").each(function() {
     if ($(this).attr('disabled') == false) {
        $(this).attr('checked', $("#ckbSelectAll").attr('checked'));

        // Fire onWorksiteChecked method here
        // > as suggested by August Lilleaas in his answer
        $(this).click(); // <-- when this executes I still have the input box to be unchecked, the line above is not perform
     }
  });

在onclick属性中我得到了我需要为每个输入运行的javascript(将其添加到列表中并添加要导入的公司,但我该如何运行它?

$(this).attr('checked');

alt text

我该如何执行该功能?

作为附加组件,此图像显示列表

alt text

  • 如果用户在复选框中单击,它将正确执行调用并将此公司添加到“一个篮子”
  • 如果用户选择全部(上面的代码)我想更改所有输入:复选框选中并对每个输入执行调用,这样我将重复使用代码将每个元素添加到“篮子”中

问题

点击事件会触发,但是当它触发时我仍然没有选中该输入框(将不会执行正确的代码)

3 个答案:

答案 0 :(得分:1)

您不能/不应该直接调用该代码。但是,您可以触发click事件,这将导致调用内联onclick代码。

$("#the_thing").click();

可能已经设法通过将代码转换为字符串并进行了一次“直接”来执行代码,但是使用click事件间接调用它是非常好的。

答案 1 :(得分:0)

直接回答你的问题:

从onclick中删除javascript::它仅用于hrefs上的协议定义。

间接回答你的问题:

如果没有在HTML的属性中粘贴Javascript,该页面中没有任何内容无法执行。尝试:

  • 循环浏览所有复选框;
  • 对于每个复选框,请使用以下内容抓取内容:$(this).text(); $(this).val();等
  • 将它们设置为选中:$(this).attr('checked', 'checked');

答案 2 :(得分:0)

我发现了......

我不需要在触发click事件之前选中所有复选框,因为jQuery方法 click()将逐字地单击复选框,如果未选中它将检查,反之亦然

SelectAll方法只需要:

  $("#ulworksites li input:checkbox").each(function() {
     if ($(this).attr('disabled') == false) {
        $(this).click();
     }
  });

这适用于检查和取消选中。