Jquery浏览器兼容性问题,我做错了什么?

Jquery浏览器兼容性问题,我做错了什么?,jquery,cross-browser,Jquery,Cross Browser,还有一个问题。我正在使用JQuery-1向我的一个页面添加一个简单的交互性。简而言之,页面右上角的document.ready上包含一个搜索文本框。我只需调用一个inputHint()函数,将短语“搜索产品”添加到我的文本框中。当用户单击此文本框时,我调用另一个函数(本例中为hideHint())来隐藏默认的“搜索产品”短语。最后,如果用户没有键入文本就离开了页面,并单击了页面上的其他任何地方,我会重新显示提示。下面是一段javascript用户代码: $.fn.inputHint = func

还有一个问题。我正在使用JQuery-1向我的一个页面添加一个简单的交互性。简而言之,页面右上角的
document.ready上包含一个搜索文本框。我只需调用一个inputHint()函数,将短语“搜索产品”添加到我的文本框中。当用户单击此文本框时,我调用另一个函数(本例中为hideHint())来隐藏默认的“搜索产品”短语。最后,如果用户没有键入文本就离开了页面,并单击了页面上的其他任何地方,我会重新显示提示。下面是一段javascript用户代码:

$.fn.inputHint = function(options) {
    options = $.extend({hintClass: 'hint'}, options || {});

    function showHint() {           
        if ($(this).val() == '') {  
        $(this).addClass(options.hintClass).val($(this).attr('accesskey'));             
        }
        else{}
    }

    function removeHint() {     
        if ($(this).hasClass(options.hintClass)) $(this).removeClass(options.hintClass).val('');            
    }
这是document.ready处理程序(或您可以称之为的任何名称):

这段代码获得了所需的功能,可以像charm一样工作,但只能在Google Chrome和Safari上工作。IE和Firefox都有一个非常奇怪的行为(提示很好,但如果我重新加载页面,它会神奇地停止!)。是我的代码导致了这种奇怪的行为,还是JQuery本身有问题(我经常听说JQuery与所有主流浏览器兼容)?想法

PS:这是JQuery-1

这可能有点遥不可及,没有必要将对inputHint()的调用包装在$function()中,因为它已经在您的ready函数中了。试试这个:

$(document).ready(function(){
    /* Initialize hint*/ 
    $('*[@accesskey]').inputHint();    
});

这可能有点遥不可及,不需要将对inputHint()的调用包装在$function()中,因为它已经在ready函数中了。试试这个:

$(document).ready(function(){
    /* Initialize hint*/ 
    $('*[@accesskey]').inputHint();    
});

我不知道为什么要使用accesskey属性来存储提示,但无论如何

$.fn.inputHint = function(options) {
    options = $.extend({ hintClass: 'hint' }, options || {});

    $this = $(this);
    hintValue = $this.attr("accesskey");

    function showHint() {
        if ($this.val() == "") {
            $this.addClass(options.hintClass).val(hintValue);
        }
    }

    function removeHint() {
        if ($this.hasClass(options.hintClass)) {
            $this.removeClass(options.hintClass).val("");
        }
    }

    $this.blur(showHint)
         .focus(removeHint)
         .addClass(options.hintClass)
         .val(hintValue);
};

我不知道为什么要使用accesskey属性来存储提示,但无论如何

$.fn.inputHint = function(options) {
    options = $.extend({ hintClass: 'hint' }, options || {});

    $this = $(this);
    hintValue = $this.attr("accesskey");

    function showHint() {
        if ($this.val() == "") {
            $this.addClass(options.hintClass).val(hintValue);
        }
    }

    function removeHint() {
        if ($this.hasClass(options.hintClass)) {
            $this.removeClass(options.hintClass).val("");
        }
    }

    $this.blur(showHint)
         .focus(removeHint)
         .addClass(options.hintClass)
         .val(hintValue);
};

什么是“JQuery-1”?它与“jQuery 1.3.2”有什么不同吗?(官方jQuery库的最新版本)是的,我想它是jQuery 1.0。实际上,我们团队的一位设计师从一开始就在使用它。我应该用jQuery 1.3.2替换它吗?总之,是的!什么是“JQuery-1”?它与“jQuery 1.3.2”有什么不同吗?(官方jQuery库的最新版本)是的,我想它是jQuery 1.0。实际上,我们团队的一位设计师从一开始就在使用它。我应该用jQuery 1.3.2替换它吗?总之,是的!