javascript - IE not taking my onClick, any suggestions? -


i have pretty simple function seems work fine in chrome, firefox, , safari, in ie it's breaking. i'm trying load windows 8 web app, i've read, uses more forgiving version of ie10 output.

say have <div> (or <a> href...i've tried well) so:

<div onclick="showsection('mytemplate.html');"></div> 

this function:

function showsection(loca) {     $("#optionview").show();     $("#bookmenu").hide();     $("#optionview").load('settings/'+loca);         $("#settingsbutton").attr("onclick","showsettingsmain();"); } 

why wouldn't work in ie?

a better option, since using jquery, not use inline event handlers.

instead, use html:

<div id="main_div"></div> 

and use javascript:

$(document).ready(function () {     $("#main_div").on("click", function () {         showsection("mytemplate.html");     }); }); 

this may not solve problem ie10, it's considered better practice...and should work consistently browsers.

a few other suggestions:

instead of using .attr set onclick attribute of #settingsbutton, might use on again:

$("#settingsbutton").on("click", function () {     showsettingsmain(); }); 

although i'm not sure if have effect on problem is.

nonetheless, here's explanation on difference between attr , prop - .prop() vs .attr()

also, if need specify url use, on per-<div> basis, use data-* attribute. html:

<div class="trigger-div" data-target-url="mytemplate.html"></div> <div class="trigger-div" data-target-url="mytemplate2.html"></div> 

then use:

$(document).ready(function () {     $(".trigger-div").on("click", function () {         var $this = $(this);         var target_url = $this.attr("data-target-url");  // or $this.data("target-url")         showsection(target_url);     }); }); 

clicking first div use "mytemplate.html", while clicking second use "mytemplate2.html".

this way, data embedded in html, javascript unobtrusive.


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -