4

変数を関数に渡そうとしています。これについて多くのトピックがあることを知っています。ほぼすべての提案を試しましたが、まだ機能しません。これらは私の試みです:

編集: onclick がなくても、すべて正常に動作しています

var filename = file.name;

<button class="btn btn-danger delete" onclick="deleteImage(\''+filename+'\');">

結果: Uncaught SyntaxError: Unexpected token ILLEGAL

<button class="btn btn-danger delete" onclick="deleteImage(&quot;'+type+'&quot;);">

結果 (アラート): 'filename'

<button class="btn btn-danger delete" onclick="deleteImage('" + filename + "');">

結果: Uncaught SyntaxError: Unexpected token ILLEGAL

<button class="btn btn-danger delete" onclick="deleteImage(" + filename + ");">

結果: Uncaught SyntaxError: Unexpected token }

これは完全なコードです (変更された、blueimp ファイルアップローダー)

    <script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
    <tr class="template-download fade">
        {% if (file.error) { %}
            <td></td>
            <td class="name"><span>{%=file.name%}</span></td>
            <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
            <td class="error" colspan="2"><span class="label label-important">Error</span> {%=file.error%}</td>
        {% } else { 
            // add the image urls to the file inputbox
            var filename = file.name;
            var prev = $("#mFile").val(); 
            $("#mFile").val(prev + file.name + ","); 

            %}
            <td class="preview">{% if (file.thumbnail_url) { %}
                <a href="modules/mod_stern_form_prijsopgave/upload/server/php/files/{%=file.name%}" title="{%=file.name%}" data-gallery="gallery" download="{%=file.name%}"><img src="modules/mod_stern_form_prijsopgave/upload/server/php/files/thumbnail/{%=file.name%}"></a>
            {% } %}</td>
            <td class="name">
                <a href="modules/mod_stern_form_prijsopgave/upload/server/php/files/{%=file.name%}" title="{%=file.name%}" data-gallery="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
            </td>
            <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
            <td colspan="2"></td>
        {% } %}
        <td>
            <button class="btn btn-danger delete" onclick="deleteImage('" + filename + "');" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}"{% if (file.delete_with_credentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
                <i class="icon-trash icon-white"></i>
                <span>Verwijderen</span>
            </button>
        </td>
    </tr>
{% } %}
</script>

そして次のようにテストします:

    function deleteImage(filename) {
      alert(filename);
    }

私は何を間違っていますか?アドバイスありがとうございます

4

5 に答える 5

3
<button id="deleteOnClick" class="btn btn-danger delete">...</button>

そしてJavaScriptで:

document.getElementById("deleteOnClick").onclick = function(){deleteImage(filename);}

編集:

元のファイル名の値のみで指定されたファイルを削除する場合:

var deleteByFile = (function (filename){
    return function(){deleteImage(filename);};
}(filename));
document.getElementById("deleteOnClick").onclick = deleteByFile
于 2013-04-11T12:14:01.970 に答える
3

onclick 値のテンプレート形式を試してください:

onclick="deleteImage('{%=filename%}');"

file.name も試してください

onclick="deleteImage('{%=file.name%}');" 
于 2013-04-11T12:56:15.070 に答える
2

HTML から JS 変数にアクセスすることはできません。次のようにする必要があります。

var filename = 'testing';
document.getElementById('testdiv')
    .setAttribute('onclick', "alert('" + filename + "')");
filename = 'more testing';

ここにフィドルがあります。

于 2013-04-11T12:12:25.977 に答える
-1

var counter = 1; のような変数を設定できます。

必要な場所ならどこでも、次のように更新できます

     onclick="updateCount('+counter+')"
于 2015-04-23T07:47:39.110 に答える
-1

使ってみてくださいonclick="deleteImage(" + filename + ");"

于 2013-04-11T12:21:48.633 に答える