请解释一下这个 jQuery

发布于 2024-09-08 10:21:13 字数 1308 浏览 3 评论 0 原文

也许我的最后一个问题(现已删除)被误解了,所以这次我将更清晰地重新发布它:

jQuery(UI):

$("#tabs").tabs({
   select: function(event, ui) { 
        alert(ui.panel.id);
        $('input[name=myinput], textarea[name=myinput]').attr('disabled', true); 
        $('input[name=myinput].' + ui.panel.id + ', textarea[name=myinput].' + ui.panel.id).removeAttr('disabled'); 
        $('input[name=source]').val(ui.panel.id);
   }
});

HTML:

<div id='tabs'>
    <ul>
        <li><a href="#direct">Direct input</a></li>
        <li><a href="#files">File upload</a></li>
        <li><a href="#uri">URI</a></li>
    </ul>
    <div id="direct">
        <textarea name='myinput' class='direct'></textarea>
    </div>
    <div id="file">
       <input type='file' name='myinput' class='file' />
    </div>
    <div id="uri">
       <input type='text' name='myinput' class='uri' />
    </div>
</div>
<input type='hidden' name='source' value='direct' />
<input type='submit' value='GO' />

我不太明白 jQuery 对输入的作用。我想使用常规 jQuery 并避免使用“jQueryUI”选项卡,因此了解输入发生的情况很重要,当我使用常规 jQuery 时,我可以重现相同的效果。 希望我说得有道理。

感谢您的帮助!

Perhaps my last question (now deleted) was misunderstood so I'm reposting it with more clarity this time:

jQuery(UI):

$("#tabs").tabs({
   select: function(event, ui) { 
        alert(ui.panel.id);
        $('input[name=myinput], textarea[name=myinput]').attr('disabled', true); 
        $('input[name=myinput].' + ui.panel.id + ', textarea[name=myinput].' + ui.panel.id).removeAttr('disabled'); 
        $('input[name=source]').val(ui.panel.id);
   }
});

HTML:

<div id='tabs'>
    <ul>
        <li><a href="#direct">Direct input</a></li>
        <li><a href="#files">File upload</a></li>
        <li><a href="#uri">URI</a></li>
    </ul>
    <div id="direct">
        <textarea name='myinput' class='direct'></textarea>
    </div>
    <div id="file">
       <input type='file' name='myinput' class='file' />
    </div>
    <div id="uri">
       <input type='text' name='myinput' class='uri' />
    </div>
</div>
<input type='hidden' name='source' value='direct' />
<input type='submit' value='GO' />

I don't quite understand what the jQuery is doing with the input. I want to use regular jQuery and avoid the "jQueryUI" tabs so its important that I understand what happening with the input to I can reproduce the same effect when I use regular jQuery.
Hope I'm making sense.

Thanks for your help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

神经暖 2024-09-15 10:21:13

当调用 select 函数时:

$('input[name=myinput], textarea[name=myinput]').attr('disabled', true);

查找所有名为 myinputinputtextarea 元素并禁用它们。

$('input[name=myinput].' + ui.panel.id + ', textarea[name=myinput].' + ui.panel.id).removeAttr('disabled');

查找名称为 myinput 且与 input 元素和 textarea 元素>ui.panel.id 属性并启用它们。

$('input[name=source]').val(ui.panel.id);

找到名为 sourceinput 元素(或多个元素,但我打赌只有一个),并将其值设置为 ui.panel.id 的值 属性。

例如:禁用所有 myinput inputtextarea 元素除了匹配的元素根据其类的 ui.panel.id 属性,并将名为 sourceinput 的值设置为该属性,大概是为了跟踪启用了哪些输入/显示了哪些选项卡。

When the select function is called:

$('input[name=myinput], textarea[name=myinput]').attr('disabled', true);

Find all input and textarea elements named myinput and disable them.

$('input[name=myinput].' + ui.panel.id + ', textarea[name=myinput].' + ui.panel.id).removeAttr('disabled');

Find any input elements and textarea elements with the name myinput and the class that matches the value of the ui.panel.id property and enable them.

$('input[name=source]').val(ui.panel.id);

Find the input element (or elements, but I bet there's only one) with the name source and set its value to the value of the ui.panel.id property.

E.g.: Disable all of the myinput input and textarea elements except the one matching the ui.panel.id property according to its class, and set the value of the input named source to that property, presumably to keep track of which inputs are enabled / which tab is showing.

白衬杉格子梦 2024-09-15 10:21:13

.tabs() 是一个 jQuery UI 插件,可以将标记转变为只是进入了选项卡式浏览界面。如果您愿意,您可以在 jQuery 中编写自己的 tabs() 函数,但您可以轻松 下载自定义构建 jQuery UI。取消选择所有内容,然后选择选项卡(只需要 Core 和 Widget)...

如果您已经替换了选项卡,TJ 会整理出一个可靠的答案来描述 select 事件处理程序正在执行的操作。每次您选择新的活动选项卡时都会触发它。

.tabs() is a jQuery UI plugin that turns the markup you just gave into a tabbed browsing interface. You could write your own tabs() function in jQuery if you wished, but you could easily download a custom build of jQuery UI. Deselect everything, then select tabs (which only requires Core and Widget)...

If you already have your tabs replacement, T.J. put together a solid answer describing what the select event handler is doing. It is fired every time you select a new active tab.

薆情海 2024-09-15 10:21:13

您似乎错误地认为 jQuery UI 是 jQuery 的一个版本。事实上,它是一个 jQuery 插件。它相当重量级,重达数千字节。要在不使用 jquery ui 的情况下重现 jquery ui 选项卡代码将是一项巨大的工作。您向我们展示的代码只是调用 jquery ui 来创建选项卡,但选项卡插件在幕后做了大量的工作。您可能希望重新考虑一下放弃 jquery ui 的愿望。

You seem to be under the mistaken impression that jQuery UI is a version of jQuery. It is, in fact, a jQuery plugin. It's fairly heavyweight, weighing in at many kilobytes. To reproduce the jquery ui tab code without using jquery ui would be a significant effort. The code you've shown us is simply calling jquery ui to create the tabs, but the tab plugin is doing a massive amount of work behind the scenes. You may wish to rethink your desire to move away from jquery ui.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文