我使用jQuery和IScriptControls的组合,我似乎不能够使用$找到任何jQuery的功能。

采取以下,例如,我可以用$ get和$,但我不能使用$查找。

    // Configure the toolbar groups
    $(document).ready(function()
        {

            // Returns the control
            var works1 = $get("ctl00_ContentPlaceHolder1_uwt_MainNavigation");
            var works2 = $("#ctl00_ContentPlaceHolder1_uwt_MainNavigation");

            // Returns null
            var broken = $find("ctl00_ContentPlaceHolder1_uwt_MainNavigation");

        }
    );

在我的页面加载我需要调用一个方法,它需要从我的主导航选项卡控制得到所选标签(这是一个Infragistics的UltraWebTab,但我用我自己的IScriptControls测试,以确保这就是它不是一个Infragistics的问题)。

在标签索引只能通过使用$查找获得。什么是我不能用$发现,我怎样才能在$找到时尚的控制的原因是什么?

// Configure the toolbar groups
$(document).ready(function()
    {

        // Get the UltraWebTab Control
        var tabControl = $find("<%=uwt_MainNavigation.ClientID %>");
        var index = tabControl.get_selectedTab();
        ToolBarShowGroup(index);

    }
);

以上是我想要做的,其中ToolBarShowGroup调用一个jQuery函数来显示和隐藏工具栏。

另外,虽然我听,如果它在哪里的iScript控制有人可以纠正我的术语...他们是“Ajax控件”或“扩展程序控件”还是什么?我看过他们被称为所有不同的东西。对照具有醇” MyCompany.MyControl.prototype声明。

修改:以下作品完美,但我宁愿它是$(document).ready函数内

// Use the Ajax Load Methods
function pageLoad()
{
    var ajaxControl= $find("<%=myControlHere.ClientID %>");
}
有帮助吗?

解决方案

似乎jQuery的$(文件)的Ajax控件之前。就绪火灾构造。

我得到这个工作的方法是使用以下的JavaScript方法其由Ajax框架烧制:

function pageLoad()
{
    // $find() works in here
}

页面加载()火灾后的$(document)。就绪,所以会出现,当jQuery的功能火灾要说文档准备好......它实际上不是都准备好了吗?

其他提示

看来你正在使用jQuery与也重新定义$函数其他库。您可以使用 noConflict 功能,迫使你总是使用,而不是jQuery $

jQuery.noConflict();


// Configure the toolbar groups
jQuery(document).ready(function() {
    // Returns the control
    var works1 = $get("ctl00_ContentPlaceHolder1_uwt_MainNavigation");
    var works2 = jQuery("#ctl00_ContentPlaceHolder1_uwt_MainNavigation");
    // Returns null
    var broken = $find("ctl00_ContentPlaceHolder1_uwt_MainNavigation");
});

jQuery(document).ready(function() {
    // Get the UltraWebTab Control
    var tabControl = $find("<%=uwt_MainNavigation.ClientID %>");
    var index = tabControl.get_selectedTab();
    ToolBarShowGroup(index);
});

怎么样重新定义的document.ready

的$查找功能外
var FIND_FUNCTION = $find;

$(document.ready) { 
   ...
   var result = FIND_FUNCTION("ctl00_ContentPlaceHolder1_uwt_MainNavigation");
}

此应该解决的问题作用域你似乎有

我不知道为什么你有这样的问题,但你为什么不只是使用jQuery对象呢? 像:

var mainNav = $("#ctl00_ContentPlaceHolder1_uwt_MainNavigation");

或者,如果你想要的DOM对象而不是jQuery对象,你可以写:

var mainNav = $("#ctl00_ContentPlaceHolder1_uwt_MainNavigation")[0];

此应该工作:

$(document).find("#elementid")

或者,如果你调用它在事件处理中,那么这是更好的:

$(this).find("#elementid")

我认为与查找功能的想法是要找到一个父控制的后代。因此,这似乎并没有工作,如果你不指定父。

不过,从外观上来看,你不需要使用找到你在做什么。为什么就不能这样做呢?

$("#elementid")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top