1

这是我的 javascript 文件的摘录:

$(function() {
    if ($('form#search').length > 0) {
        setSearchForm();
    }
});

function setSearchForm() {
    var text=$('form#search input[type=text]');
    if (text.val().length != 0) {
        text.next('input[type=submit]').removeProp('disabled');
    } else {
        text.next('input[type=submit]').prop('disabled', true);
    }
}

我的问题是:我的所有子页面.js都使用此文件,但并非所有子页面都有search表单。

因此,在准备好文档时,我会检查是否存在搜索表单,然后setSearchForm()仅在存在搜索表单时才调用。

我发现这是防止setSearchForm()在每个页面上运行的唯一方法。因为如果没有搜索表单并且无论如何都会触发该功能,那么我js文件中的其他功能将不再起作用。

有没有更优雅的解决方案,例如以某种方式重写函数?

我对 jQuery 相当陌生,所以解决方案可能很简单!

谢谢你的帮助。

4

1 回答 1

1

将这两个函数放在一个单独的 .js 文件中,并仅在具有搜索表单的页面上导入它。

于 2012-10-20T14:18:47.577 回答