不确定我做错了什么。我的自定义jQuery插件中有一个函数,我的浏览器告诉我它未定义。
任何人都可以看到我在里面做错了什么:
(function($){
$.fn.myCustomPlugin = function( ) {
return this.each(function() {
var theValue = $(this).text().trim().replace(/ /g,'');
// STOP if theValue return nothing
if (theValue === null || theValue === undefined || theValue == ""){
$(this).html("nothing inside the span");
return true;
}
function clickActions()
{
alert("This alert shows when clicking on the element");
return false;
}
$(this).html('<a href="javascript:void(0);" onClick="clickActions()">'+theValue+'</a>');
}); // eof .each
};
})(jQuery);
Html是跨越的简单电话号码:
<span class="formatme">123-8749674</span><br />
<span class="formatme">123-8749674</span><br />
<span class="formatme">123-8749674</span><br />
<span class="formatme">123-8749674</span><br />
<span class="formatme">123-8749674</span><br />
<script type="text/javascript">
$(document).ready(function() {
$('.formatme').myCustomPlugin();
});
</script>
函数clickActions()可能只是在错误的位置,但我已将其移动到插件代码中,结果相同。
答案 0 :(得分:0)
你需要声明你的功能:
window.clickActions = function(){
alert("This alert shows when clicking on the element");
return false;
}
...如果要在onclick
处理程序中尝试访问它,那么要进行全局范围设定。
那就是说我建议提供一个对象并在该对象中确定范围,以防止污染全局命名空间,这是最佳实践。
干杯
答案 1 :(得分:0)
您只需使用
即可$(this).text(theValue).on('click', function(e){
alert("This alert shows when clicking on the element");
return false;
});
也在行
之后var theValue = $(this).text().trim().replace(/ /g,'');
应为$.trim()
var theValue = $.trim($(this).text()).replace(/ /g,'');