jquery
  • html
  • 2017-07-07 13 views -4 likes 
    -4

    私はfunction.Insideその機能を持っている私のコードの一部は、次のようになり、: - 上記で示したラインでインラインjuqery構文エラー

    $html=''; 
    $html.='<div id="imgContainer"></div>'; 
    $html.='<img src="elements/18_lr.jpg" data-highres="elements/18_hr.jpg" onclick="$(this).mbZoomify({screen:'#imgContainer'});">';//<<----shows error near #imgContainer 
    

    、それは間違ったHTMLのエラーを示しています。エラーを取り除く方法を教えてください。

    +1

    は、一つは ''適切にエスケープされていません – Kaddath

    答えて

    0

    問題は、引用符が誤っていることが原因です。あなたはこのようなオブジェクトの値内'を、エスケープする必要があります。

    $html.='<img src="elements/18_lr.jpg" data-highres="elements/18_hr.jpg" onclick="$(this).mbZoomify({ screen:\'#imgContainer\' });">'; 
    

    しかし

    、はるかに優れたソリューションは、完全に完全に時代遅れと醜い on*イベントを属性を削除し、控えめなイベントハンドラを使用することです。すでにページにjQueryのを含めてきたように、ここにあなたがそれを行うことができます方法は次のとおりです。

    $html.='<img src="elements/18_lr.jpg" data-highres="elements/18_hr.jpg" data-screen="#imgContainer" />'; 
    
    $('#container img').click(function() { 
        $(this).mbZoomify({ 
        screen: $(this).data('screen'); 
        }); 
    }); 
    
    0

    あり、これを行うための方法はたくさんがありますが、個人的に私はこれまでで最も読みやすいのでしょうね。

    $html = <<<'END' 
    <div id="imgContainer"></div> 
        <img src="elements/18_lr.jpg" data-highres="elements/18_hr.jpg" onclick="$(this).mbZoomify({screen:'#imgContainer'});"> 
    END; 
    

    エスケープ不要です!あなたのポストのハイライトで見ることができるよう

    0

    使用backwordスラッシュ「\」

    $html=''; 
    $html.='<div id="imgContainer"></div>'; 
    $html.='<img src="elements/18_lr.jpg" data-highres="elements/18_hr.jpg" onclick="$(this).mbZoomify({screen:\'#imgContainer\'});">';//<<----shows error near #imgContainer 
    
    関連する問題