1

私のページは、実行される新しいhtmlファイルにそれを書き込むphpファイルにajaxedされるjQuery文字列(以下のjqueryBlock)を生成します。以下のコード「A」は、最終的な jQuery を生成するために現在持っているものであり、以下の「B」は新しい html ファイルにあります。

「あ」

    var targetName = "redbox";
    target = $('div[filename=' + targetName + ']').hide()[0];
    var jqueryBlock= '<script>$(function() {\n'; 
    jqueryBlock += "$('#" + this.id + "').click(function() {\n";
    jqueryBlock += "$('#" +  target.id + "').show();\n";
    jqueryBlock += "}).css('cursor', 'pointer');\n";
    jqueryBlock += "$('#" +  target.id + "').dblclick(function(){\n$(this).hide();\n});\n";
    jqueryBlock += "})<\/script>";

"B"

    <script>$(function() {
    $('#T_1376594221987').click(function() {
                             $('#T_1376594237267').show();
                           })
                         .css('cursor', 'pointer');

    $('#T_1376594237267').dblclick(function(){
                            $(this).hide();
                          });
    })</script>

これはすべて機能しますが、複数レベルの引用符とすべてのかっこと中かっこを追跡しようとし、行を改行して読みやすくすることができないため、ブロック A を作成するのは悪夢です。「A」の完成したjQueryのように見える何かを書くことができるこれを行う方法がなければならないと考えています。誰でもより良い方法を提案できますか? ありがとう。

4

3 に答える 3

1

私がすべてを理解していれば、動的変数のみを PHP ファイルに ajax して、次のように変更できます。

<script>$(function() {
$('#<?php echo $_GET['id']; ?>').click(function() {
                         $('#<?php echo $_GET['id']; ?>').show();
                       })
                     .css('cursor', 'pointer');

$('#<?php echo $_GET['id']; ?>').dblclick(function(){
                        $(this).hide();
                      });
})</script>
于 2013-08-15T19:32:24.047 に答える
1

coffeescript では、インデント レベルを追跡するテキスト ブロックを使用できます。このスクリプトのためだけに coffeescript に変更できるかもしれません。

http://coffeescript.org/#strings

于 2013-08-15T19:33:28.700 に答える