1

所以我很糟糕的是 js,我正在尝试获取一个 jquery 脚本,以 onblur 检查文本框是否有内容,如果有,则继续执行脚本,这就是我所拥有的

<script type="text/javascript">
    $(document).ready(function() {
        $("#embed").blur(function (){
            $("#embed").val().length > 0){
                $("#fade").fadeIn(1000);olink = $("#embed").val(); 
                $("#oembed").oembed(olink, {
                    embedMethod: "append", 
                    maxWidth: 300, 
                    maxHeight: 150 
                });
            });
        }
    });
</script> 

但我在读取的行上遇到语法错误(dreamweaver)

$("#embed").val().length > 0){

任何建议都会很棒...谢谢

4

3 回答 3

1

您似乎没有 if 语句,请尝试:

$(document).ready(function() {
    $("#embed").blur(function () {
        if($("#embed").val().length > 0) {
            $("#fade").fadeIn(1000);
            olink = $("#embed").val(); 
            $("#oembed").oembed(olink, {
                embedMethod: "append", 
                maxWidth: 300, 
                maxHeight: 150 
            });
         }
    });
});

编辑

您可以像这样使您的代码更简洁:

$(document).ready(function() {
    $("#embed").blur(function() {
        var $this = $(this);
        var embed_val = $this.val();
        if(embed_val.length) {
            $("#fade").fadeIn(1000);
            $("#oembed").oembed(embed_val, {
                embedMethod: "append", 
                maxWidth: 300, 
                maxHeight: 150 
            });
         }
    });
});
于 2012-06-09T02:47:13.793 回答
1
<script type="text/javascript">
$(document).ready(function() {
  $("#embed").blur(function (){
    if ($("#embed").val().length > 0){
      $("#fade").fadeIn(1000);
      olink = $("#embed").val(); 
      $("#oembed").oembed(olink, {
        embedMethod: "append", 
        maxWidth: 300, 
        maxHeight: 150 
      });
    }
  });
});
</script>

这应该够了吧。

于 2012-06-09T02:49:44.087 回答
1

这就是您的代码应该看起来的样子(当然,在我看来),格式正确:

$(document).ready(function() {
    var $embed = $("#embed"),
        $fade = $('#fade'),
        $oembed = $('#oembed'),
        oembed = {
            embedMethod: "append",
            maxWidth: 300,
            maxHeight: 150
        },
        olink;

    $embed.blur(function(){
        if ($embed.val().length){
            $fade.fadeIn(1000);

            olink = $embed.val(); 
            $oembed.oembed(olink, oembed);
        }
    });
});

除了混乱的混乱集群之外,您发布的代码有什么问题?你if()不在……那里。你漏掉if(了:

$(document).ready(function() {
    $("#embed").blur(function (){
        $("#embed").val().length > 0){

你能看见它吗?很难区分这三行。现在看看上面的代码,它...

  1. 正确使用选择器缓存 ( var $embed = $("#embed"))。
  2. 用于var声明所有变量,以 a 分隔,,因此它们都是本地的;还...
  3. 制作olink一个适当的非全局范围的变量(嘿,由于闭包,它仍然有效,多么漂亮)。
  4. 将对象(我从作为参数传递的oembed对象中创建)移动到适当的变量中,清理代码并缓存它。{}

我认为,如果您在格式化代码时小心并决定使用缓存和非全局变量等最佳实践,那么阅读和发现问题会更容易。这if(是最直接的问题,但整个代码都需要一些关注和一点爱心。

于 2012-06-09T03:09:07.913 回答