需要了解如何调用javascript函数

时间:2010-11-18 10:24:25

标签: javascript jquery html

这是代码的一部分。问题是,这行"$("#b_facetNewChild").button().click(function(){"是否意味着单击按钮“facetNewChild”时应触发以下内容?因为按钮上没有“onClick”功能。另外,你能简单解释一下,将它嵌套到另一个函数“newChildFacet()”以及如何调用它意味着什么? 抱歉,我是javascript.Thanks!

的新手
function newChildFacet()
    {
        //  button click
        $("#b_facetNewChild").button().click(function(){
                //get selected fId
            var $fId=getSfSelectedFIds();
            if($fId.length>0 && $fId.split(",").length!=1)
            {
                messageBox("Tip","Please select <b>ONE</b> as the parent facet. If no facet is selected, the new facet will be created under <b>root</b>.");
                return false;
            }

            //some more stuff here!
        });

        // newChildFacetDialog
        $("#newChildFacetDialog").dialog({
            autoOpen: false,
            modal: true,
            title: "New Child Facet",
            buttons: {
                "Cancel": function() {
                    $(this).dialog('close');
                },
                "Create": function() {
                    //get data
                    var $parentId=getSfSelectedFIds();

                    });
                    $(this).dialog('close');
                }
            }
        });

    }

2 个答案:

答案 0 :(得分:0)

首先,是的,它绑定为click事件处理程序,因此它会在单击#b_facetNewChild时运行 - 您不会在源中看到它,它存储在DOM的其他位置。

您可以通过调用该元素上的click事件处理程序来调用它,如下所示:

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

它是一个嵌套/匿名函数并不重要,我们在这里关心的是它是该元素的click事件处理程序,因此您可以通过以下任何方式触发它:

$("#b_facetNewChild").click();
$("#b_facetNewChild").trigger("click");
$("#b_facetNewChild").triggerHandler("click");

答案 1 :(得分:0)

你做得对。

$("#b_facetNewChild").button().click(function(){ ... })完全符合您的意思。但是,您不会在HTML中看到onclick处理程序,而只是在您检查DOM / JS元素本身时(例如,通过使用FireBug)。

这个调用位于函数内部的事实只是意味着只有在调用包装函数时才会调用它(即连接到按钮的回调)。