在onClick函数中添加字符串参数到函数?

时间:2014-04-11 13:44:19

标签: javascript jquery parameter-passing

我有一个带参数的onclick函数。我希望在警报中显示此参数。我该如何给出参数?像这样:

<img id="imgPerson" src="_#=itemImg=#_" width="200" height="200" onclick="SetDetailInfo('test value 123')"/>

function SetDetailInfo(myCustomParam) {
    alert(myCustomParam);
}

UPDATE 上面的代码工作正常。但是我不希望给函数一个固定的参数。我想让它充满活力。以下代码有效。你会看到一些变量名为&#34; #= line2 =#&#34;以div打印。这工作并显示一些字符串运行时。我想将该变量的值作为参数添加到函数中。

<img id="imgBestuurderFoto" src="_#=itemDate=#_" width="200" height="200" onclick="SetDetailInfo('test 123')" style="padding:0 !important;margin:0 !important;border:0 !important;" />

       <div class="cbs-Line2" title="_#= $htmlEncode(line2.defaultValueRenderer(line2)) =#_" id="_#= line2Id =#_" style="display:block;" >_#= line2 =#_</div>

这是带有变量的javascript:

var encodedId = $htmlEncode(ctx.ClientControl.get_nextUniqueId() + "_2lines_");
var line2 = $getItemValue(ctx, "IntroText");
line2.overrideValueRenderer($contentLineText);
var line2Id = encodedId + "line2";

2 个答案:

答案 0 :(得分:1)

这样可以正常工作,但是你应该在你的标记之外不引人注意地绑定你的事件处理程序,这样你就不必对该字符串进行硬编码了:

var someValue = "Test 123"; //This could be dynamic
var img = document.queryselector('#imgPerson');
img.addEventListener('click', function(e){
     SetDetailInfo(someValue);
});

function SetDetailInfo(myCustomParam) {
    alert(myCustomParam);
}

答案 1 :(得分:1)

我特别喜欢在元素中使用data-attributes来分发信息,试试这个:

<img id="imgPerson" src="_#=itemImg=#_" 
     width="200" height="200" data-test-attr="test value 123"/>

在js

$("#imgPerson").click(function(e){
     alert($(this).data("test-attr"));
});