从后面的代码向jQuery函数发送动态参数

时间:2015-01-12 09:45:31

标签: javascript c# jquery asp.net

在后面的代码中,我有以下代码从SQL数据库获取[IDphoto]。现在我想将IDphoto作为参数发送到jQuery函数onClick。我怎么能这样做?

背后的代码

sb.AppendFormat("<a onclick='popup()' href='#" + IDphoto + "'>");             

的jQuery

function popup() {        
$(document).ready(function () { 
// Here I want to get the value of IDphoto ...         
});
}

更新

我已根据TrueBlueAussie回复更新了代码:

photos_sb.AppendFormat("<a href=\"#\" class=\"photo\"  data-photo=\"" + IDphoto + "\">");


$(document).ready(function () { 
// Here I want to get the value of IDphoto ...         
$('a.photo').click(function(e){
      // Stop the link click from moving to the page top
      e.preventDefault();
      var id = $(this).attr("data-photo");
      alert(id);
});
});

什么都没发生。点击不会触发jQuery函数!

3 个答案:

答案 0 :(得分:2)

一些建议:

  • 不要对jQuery使用内联onclick属性处理程序。这增加了不必要的复杂性,并将事件代码与事件注册代码分开。
  • 对HTML属性值使用双引号。大多数浏览器都接受,但双引号对于兼容性更安全。
  • 还使用data-属性来提供元数据(而不是将其隐藏在href中)。使href成为普通书签链接(#)。
  • 在任何照片链接上使用公共类,以允许更简单的jQuery匹配(和样式):
  • $(function(){...});$(document).ready(function(){...});的便捷快捷方式 e.g

    sb.AppendFormat(&#34;&#34);

并添加一个jQuery点击处理程序,用于查找任何.photo个链接的点击次数:

$(function () { 
// Here I want to get the value of IDphoto ...         
    $('a.photo').click(function(e){
          // Stop the link click from moving to the page top
          e.preventDefault();
          var id = $(this).attr("data-photo");
          alert(id);
    });
});

以下是使用一些示例链接的上述模型:

JSFiddle: http://jsfiddle.net/TrueBlueAussie/wqkxwz2j/

答案 1 :(得分:0)

为什么不直接将IDphoto发送到Code-Behind的相同弹出功能:

sb.AppendFormat("<a onclick='popup("+IDphoto+")' href='#" + IDphoto + "'>");             

的jQuery

function popup(myVarID) {        
$(document).ready(function () { 
// Here I want to get the value of IDphoto ...         
});
}

答案 2 :(得分:0)

不完全明白你想要什么。但这是一个例子:

代码背后:

sb.AppendFormat("<a onclick='popup("+IDphoto +")' href='#'>");   

的Javascript

function popup(IDphoto) {       
    console.log(IDphoto);
}