如何在 Polymer 中创建 onchange 事件
How to make onchange event in Polymer
我收到此消息 类型错误:document.addEventListener(...) 不是函数
(document.addEventListener('polymer-ready',function($){
console.log('ready')
// top link
$.each(decodeURI(location.pathname).split('/'), function() {
$("#self").html(this+'');
});
// browser default lang
default_lang = navigator.language /* Mozilla */ || navigator.userLanguage /* IE */;
// does URL contain lang=xx ?
$.each(decodeURI(location.search.substr(1)).split('&'), function() {
var s = this.split('=');
if (s[0]=="lang") default_lang = s[1];
});
// toplevel = earth
$("#earth").click(
function(e) {
e.preventDefault();
//location.href = "http://www.geonames.org";
}
);
// entry point
geo_click($("#earth"));
}))(jQuery);
有人能告诉我这有什么问题吗?
您的代码无效,您将 document.addEventListener 视为 IIFE,但事实并非如此。您在错误的位置执行 (jQuery)。
您将 jQuery 传递给即时函数而不是事件侦听器。
(function ($) {
document.addEventListener('polymer-ready', function () {
console.log('ready')
// top link
$.each(decodeURI(location.pathname).split('/'), function () {
$("#self").html(this + '');
});
// browser default lang
var default_lang = navigator.language /* Mozilla */ || navigator.userLanguage /* IE */;
// does URL contain lang=xx ?
$.each(decodeURI(location.search.substr(1)).split('&'), function () {
var s = this.split('=');
if (s[0] == "lang") { default_lang = s[1] };
});
// toplevel = earth
$("#earth").click(
function (e) {
e.preventDefault();
//location.href = "http://www.geonames.org";
}
);
// entry point
geo_click($("#earth"));
});
})(jQuery);
问题已解决!
function geoready(){
console.log('ready');
// top link
$.each(decodeURI(location.pathname).split('/'), function() {
$("#self").html(this+'');
});
// browser default lang
default_lang = navigator.language /* Mozilla */ || navigator.userLanguage /* IE */;
// does URL contain lang=xx ?
$.each(decodeURI(location.search.substr(1)).split('&'), function() {
var s = this.split('=');
if (s[0]=="lang") default_lang = s[1];
});
// toplevel = earth
$("#earth").click(
function(e) {
e.preventDefault();
//location.href = "http://www.geonames.org";
}
);
// entry point
geo_click($("#earth"));
}
然后我将其绑定到 Polymer 构造函数中:
<script>
Polymer({
is: "geo-dropdown",
ready: geoready
});
</script>
我收到此消息 类型错误:document.addEventListener(...) 不是函数
(document.addEventListener('polymer-ready',function($){
console.log('ready')
// top link
$.each(decodeURI(location.pathname).split('/'), function() {
$("#self").html(this+'');
});
// browser default lang
default_lang = navigator.language /* Mozilla */ || navigator.userLanguage /* IE */;
// does URL contain lang=xx ?
$.each(decodeURI(location.search.substr(1)).split('&'), function() {
var s = this.split('=');
if (s[0]=="lang") default_lang = s[1];
});
// toplevel = earth
$("#earth").click(
function(e) {
e.preventDefault();
//location.href = "http://www.geonames.org";
}
);
// entry point
geo_click($("#earth"));
}))(jQuery);
有人能告诉我这有什么问题吗?
您的代码无效,您将 document.addEventListener 视为 IIFE,但事实并非如此。您在错误的位置执行 (jQuery)。
您将 jQuery 传递给即时函数而不是事件侦听器。
(function ($) {
document.addEventListener('polymer-ready', function () {
console.log('ready')
// top link
$.each(decodeURI(location.pathname).split('/'), function () {
$("#self").html(this + '');
});
// browser default lang
var default_lang = navigator.language /* Mozilla */ || navigator.userLanguage /* IE */;
// does URL contain lang=xx ?
$.each(decodeURI(location.search.substr(1)).split('&'), function () {
var s = this.split('=');
if (s[0] == "lang") { default_lang = s[1] };
});
// toplevel = earth
$("#earth").click(
function (e) {
e.preventDefault();
//location.href = "http://www.geonames.org";
}
);
// entry point
geo_click($("#earth"));
});
})(jQuery);
问题已解决!
function geoready(){
console.log('ready');
// top link
$.each(decodeURI(location.pathname).split('/'), function() {
$("#self").html(this+'');
});
// browser default lang
default_lang = navigator.language /* Mozilla */ || navigator.userLanguage /* IE */;
// does URL contain lang=xx ?
$.each(decodeURI(location.search.substr(1)).split('&'), function() {
var s = this.split('=');
if (s[0]=="lang") default_lang = s[1];
});
// toplevel = earth
$("#earth").click(
function(e) {
e.preventDefault();
//location.href = "http://www.geonames.org";
}
);
// entry point
geo_click($("#earth"));
}
然后我将其绑定到 Polymer 构造函数中:
<script>
Polymer({
is: "geo-dropdown",
ready: geoready
});
</script>